NPOI2.0版本,可以支持导出excel2007的xlsx文件,xlsx支持超过65536行数据。
但是用NPOI.HSSF.UserModel.HSSFSheet.CreateRow(65536)创建新行时报错
Invalid row number (65536) outside allowable range (0..65535),程序语句如下,
int rowIndex = 65536;
HSSFRow dataRow = (HSSFRow)sheet.CreateRow(rowIndex);
NPOI控件没法导出超过65535行数据的Excel吗?除了CreateRow,还有什么别的方法能创建新行?或者其他方法导出超过65535行数据?楼主用的C#,要是Java也可以。

解决方案 »

  1.   

    检查下你创建的文件是不是xls?
      

  2.   


    确定是xlsx,但是还是报错。
      

  3.   

    创建多个sheet
      

  4.   

    if (filePath.IndexOf(".xlsx") > 0)
                                workbook = new XSSFWorkbook(fs);
                            // 2003版本
                            else if (filePath.IndexOf(".xls") > 0)
                                workbook = new HSSFWorkbook(fs);
      

  5.   

    HSSFWorkbook 不是xls的吗?XSSFWorkbook才是xlsx的
      

  6.   

    可以参考我的博客,https://blog.csdn.net/gd6321374/article/details/90417202  我当时导出的100万行,今天刚使用,导出99万行,都是可以的。
      

  7.   

    //将 IWorkbook workbook = new HSSFWorkbook();  改成:IWorkbook workbook = new XSSFWorkbook();
      

  8.   

    导出文件后缀:.xlsx
    ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
      

  9.   

       IWorkbook workBook = null;
                    if (filePath.IndexOf(".xlsx") > 0)
                        workBook = new XSSFWorkbook(fs);    // 2007版本  
                    else if (filePath.IndexOf(".xls") > 0)   // 2003版本  
                        workBook = new HSSFWorkbook(fs);