1.获取NUGET NPOI包。
2.引用命名空间
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using NPOI.HSSF.UserModel;
3创建excel
///创建excel /// //创建一个工作簿,2007版以上的后缀为.xlsx IWorkbook workbook = new XSSFWorkbook(); //2003版本后缀为.xls IWorkbook workbook = new HSSFWorkbook(); //创建一个sheet ISheet sheet = workbook.CreateSheet("sheet1"); //在sheet中创建一行 IRow row = sheet.CreateRow(0); //在该行中创建一个格子 ICell cell = row.CreateCell(0); //给该格子赋值 cell.SetCellValue("shanghai");
读取excel
///读取excel /// //打开文件流 FileStream fs = File.OpenRead(filePath); //打开工作簿 IWorkbook workbook = new XSSFWorkbook(fs); //读第一个sheet ISheet sheet = workbook.GetSheetAt(0); //读取该sheet的第一行 IRow firstRow = sheet.GetRow(0); //读取第一行第一个格子 ICell cell = firstRow.GetCell(i); //类型不同读取不同的值 switch (cell.CellType) { case CellType.Blank: dataRow[j] = ""; break; case CellType.Numeric: short format = cell.CellStyle.DataFormat; //对时间格式(2015.12.5、2015/12/5、2015-12-5等)的处理 if (format == 14 || format == 31 || format == 57 || format == 58) dataRow[j] = cell.DateCellValue; else dataRow[j] = cell.NumericCellValue; break; case CellType.String: dataRow[j] = cell.StringCellValue; break; }
excel格子样式
///格子样式 /// //格子背景绿色的样式 ICellStyle Green = workbook.CreateCellStyle(); Green.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Green.Index; Green.FillPattern = FillPattern.SolidForeground; //格子加上边框 Green.BorderBottom = BorderStyle.Thin; Green.BorderLeft = BorderStyle.Thin; Green.BorderRight = BorderStyle.Thin; Green.BorderTop = BorderStyle.Thin;
//格子使用该样式
cell.CellStyle = Green;
excel公式
///使用excel公式 /// //将sss公式计算后的值付给该格子 string sss = "SUM(C1:F1)"; cell.SetCellFormula(sss);