NPOI早期版本导出Excel版本是 2003 excel,一个sheet最多存储65536条记录,超过报错,后期版本可以导出2007 excel,但为了兼容2003,一般我们选择导出2003 excel。解决办法是将数据分多个sheet导出,以下为核心代码。
我这里用的是NPOI_1.2.4.0,大家可以去网上下载。
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
/// <summary>
/// DataTable转换成Excel文档流
/// </summary>
/// <param name="table"></param>
/// <returns></returns>
public static MemoryStream DataTableToExcelStream(DataTable table)
{
MemoryStream ms = new MemoryStream();
using (table)
{
using (IWorkbook workbook = new HSSFWorkbook()) //HSSFWorkbook
{
// handling value.
int rowIndex = 1;
ISheet sheet=null;
IRow headerRow=null;
int sheetCount = 0;
int sheetRowCount = 65536;