NPOI地址:http://npoi.codeplex.com/
NPOI是一个开源项目,可以读/写xls,doc,ppt文件,有着广泛的应用。
1. 如何使用
- 从上述网址下载包文件,添加到项目,引用;
- 从NuGet安装。
2. 常用操作
2.1 写入Excel
-
//创建Excel工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet(); //填充表头 HSSFRow dataRow = (HSSFRow)sheet.CreateRow(0); foreach (DataColumn column in dataTable.Columns) { dataRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName); } //填充内容 for (int i = 0; i < dataTable.Rows.Count; i++) { dataRow = (HSSFRow)sheet.CreateRow(i + 1); for (int j = 0; j < dataTable.Columns.Count; j++) { dataRow.CreateCell(j).SetCellValue(dataTable.Rows[i][j].ToString()); } } //保存 using (FileStream fs = new FileStream(fileNames, FileMode.Create, FileAccess.ReadWrite)) { workbook.Write(fs); }
3. 常见问题
3.1 Excel行数问题
- Excel 2003版本,最大行数是65536行。
HSSFWorkbook workbook = new HSSFWorkbook();
- Excel 2007版本以上,最大行数是1048576行。
XSSFWorkbook workbook = new XSSFWorkbook();
3.2 读/写Excel内存溢出
- 读 => 使用NPOI官方提供的把Excel转换为csv格式读取。
- 写 => 使用SXXFWorkbook类进行大批量写入操作。
- 参考:http://poi.apache.org/spreadsheet/how-to.html#sxssf