using Aspose.Cells; //using NPOI.SS.UserModel; using System; using System.Data; namespace Git.Storage.Common.Excel { /// /// Excel操作类 /// public class AsposeExcel { private string outFileName = ""; private string fullFilename = ""; private Workbook book = null; private Worksheet sheet = null; private Action action = (Cell cellItem) => { cellItem.Style.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin; cellItem.Style.Borders[BorderType.BottomBorder].Color = System.Drawing.Color.Black; cellItem.Style.Borders[BorderType.TopBorder].LineStyle = CellBorderType.Thin; cellItem.Style.Borders[BorderType.TopBorder].Color = System.Drawing.Color.Black; cellItem.Style.Borders[BorderType.LeftBorder].LineStyle = CellBorderType.Thin; cellItem.Style.Borders[BorderType.LeftBorder].Color = System.Drawing.Color.Black; cellItem.Style.Borders[BorderType.RightBorder].LineStyle = CellBorderType.Thin; cellItem.Style.Borders[BorderType.RightBorder].Color = System.Drawing.Color.Black; }; /// /// //导出构造数 /// /// /// public AsposeExcel(string outfilename, string tempfilename) { outFileName = outfilename; book = new Workbook(); // book.Open(tempfilename);这里我们暂时不用模板 sheet = book.Worksheets[0]; } /// /// //导入构造数 /// /// public AsposeExcel(string fullfilename) { fullFilename = fullfilename; } private void AddTitle(string title, int columnCount) { sheet.Cells.Merge(0, 0, 2, columnCount); Cell cell1 = sheet.Cells[0, 0]; cell1.PutValue(title); cell1.Style.HorizontalAlignment = TextAlignmentType.Center; //cell1.Style.Font.Color = System.Drawing.Color.Blue; cell1.Style.Font.Size = 20; cell1.Style.Font.IsBold = true; } private void AddHeader(DataTable dt) { for (int col = 0; col < dt.Columns.Count; col++) { action(sheet.Cells[2, col]); sheet.Cells[2, col].PutValue(dt.Columns[col].ColumnName); sheet.Cells[2, col].Style.Font.IsBold = true; // sheet.Cells[2, col].Style.Font.Size = 13; } } private void AddBody(DataTable dt) { for (int r = 0; r < dt.Rows.Count; r++) { for (int c = 0; c < dt.Columns.Count; c++) { action(sheet.Cells[r + 3, c]); sheet.Cells[r + 3, c].PutValue(dt.Rows[r][c].ToString()); } } } /// /// //导出------------ /// /// /// public Boolean DatatableToExcel(DataTable dt, string sheetName, string title) { Boolean yn = false; try { sheet.Name = sheetName; AddTitle(title, dt.Columns.Count); AddHeader(dt); AddBody(dt); sheet.AutoFitColumns(); book.Save(outFileName); yn = true; return yn; } catch (Exception e) { return yn; } } /// /// 导入 /// /// public DataTable ExcelToDatatalbe(string sheetName) { Workbook book = new Workbook(); book.Open(fullFilename); Worksheet sheet = book.Worksheets[sheetName]; Cells cells = sheet.Cells; DataTable dt_Import = cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true); return dt_Import; } } }