C# Aspose操作Excel
阿新 • • 發佈:2018-12-12
private void ExportExcel_Click(object sender, EventArgs e) { Workbook workBook = new Workbook(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop) + "\\" + "1.xlsx"); workBook.Worksheets.Clear(); //清除預設sheet string sheetNames = "Test"; CreateSheetByName(workBook, new string[] { sheetNames }); MergeCells(workBook, sheetNames, new int[] { 2, 3, 1, 3 }, 0, new string[] { "合併兩列", "合併三列", "合併一列", "合併三列" }); MergeCells(workBook, sheetNames, new int[] { 2, 1, 1, 1, 1, 1, 1, 1 }, 1, new string[] { "合併兩列", "合併一列", "合併一列", "合併一列", "合併一列", "合併一列", "合併一列", "合併一列" }); //SetCellsStyle(workBook,sheetNames); List<string[]> values = new List<string[]>() { new string[]{"1","2","3","4","5","6","7","8","9"}, new string[]{"1","2","3","4","5","6","7","8","9"}, new string[]{"1","2","3","4","5","6","7","8","9"}, new string[]{"1","2","3","4","5","6","7","8","9"} }; ExportDataToExcel(workBook,sheetNames, values, 2); Save(workBook); } //private void SetCellsStyle(Workbook workBook, string sheetNames) //{ // Style style = workBook.CreateStyle(); // style.HorizontalAlignment = TextAlignmentType.Center; // Cells cells = workBook.Worksheets[sheetNames].Cells; // cells[0, 0].SetStyle(style); // cells[0, 2].SetStyle(style); // cells[0, 6].SetStyle(style); // } private void Save(Workbook workBook) { SaveFileDialog SFD = new SaveFileDialog(); SFD.Filter = "EXCEL檔案(*.xls)|*.xls|EXCEL檔案(*.xlsx)|*.xlsx"; SFD.FileName = "新建 Microsoft Excel 工作表"; if (SFD.ShowDialog() == DialogResult.OK) { workBook.Save(SFD.FileName); } } private void ExportDataToExcel(Workbook wb , string sheetName, List<string[]> values, int firstRow) { Cells cells = wb.Worksheets[sheetName].Cells; for (int i = 0; i < values.Count ; i++) { string[] tempValue = values[i]; for (int j = 0; j < tempValue.Length ; j++) { cells[i + firstRow, j].PutValue(tempValue[j]); } } } private void MergeCells(Workbook wb ,string sheetName, int[] numbers, int firstRow, string[] values) { Cells cells = wb.Worksheets[sheetName].Cells; int firstColumn = 0; //起始合併工作列 for (int i = 0; i < numbers.Length ; i++) { int number = numbers[i]; //合併的列數集合 cells.Merge(firstRow, firstColumn, 1, number); //起始行,起始列,合併的行數,合併的列數 cells[firstRow, firstColumn].PutValue(values[i]); //設定列頭居中 Style style = wb.CreateStyle(); //建立樣式 style.HorizontalAlignment = TextAlignmentType.Center; cells[firstRow, firstColumn].SetStyle(style); firstColumn += number; //合併完的起始工作列號 } } private void CreateSheetByName(Workbook wb ,string[] names) { foreach (string sheetName in names) { if (wb.Worksheets.GetSheetByCodeName(sheetName) == null) { wb.Worksheets.Add(sheetName); AutoFitterOptions options = new AutoFitterOptions(); options.AutoFitMergedCells = true; wb.Worksheets[sheetName].AutoFitRows(options); } } }