zoukankan      html  css  js  c++  java
  • EasyPoi导出问题

    导出代码如下:
    Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), PriceExcelModel.class, priceExcelModelList); File file = FileUtil.createFile(PROCEED_DATA_SOURCE_PATH); workbook.write(new FileOutputStream(file)); workbook.close();

     当数据量超过65536时,导出结果为多个sheet,会产生不方便阅读的问题。

    如果设置最大sheet行,代码如下:

    ExportParams exportParams = new ExportParams();
            exportParams.setMaxNum(200000);
            exportParams.setType(ExcelType.HSSF);
            Workbook workbook = ExcelExportUtil.exportExcel(exportParams, PriceExcelModel.class, priceExcelModelList);
            File file = FileUtil.createFile(PROCEED_DATA_SOURCE_PATH);
            workbook.write(new FileOutputStream(file));
            workbook.close();

    会产生如下报错,如下代码报错:

    ERROR 17:00:02 [org.jeecgframework.poi.excel.export.base.ExportBase:213] Invalid row number (65536) outside allowable range (0..65535)
    java.lang.IllegalArgumentException: Invalid row number (65536) outside allowable range (0..65535)
    	at org.apache.poi.hssf.usermodel.HSSFRow.setRowNum(HSSFRow.java:252)
    	at org.apache.poi.hssf.usermodel.HSSFRow.<init>(HSSFRow.java:86)
    	at org.apache.poi.hssf.usermodel.HSSFRow.<init>(HSSFRow.java:70)
    

     错误源为:

    public void setRowNum(int rowIndex) {
            int maxrow = SpreadsheetVersion.EXCEL97.getLastRowIndex();
            if (rowIndex >= 0 && rowIndex <= maxrow) {
                this.rowNum = rowIndex;
                if (this.row != null) {
                    this.row.setRowNumber(rowIndex);
                }
    
            } else {
                throw new IllegalArgumentException("Invalid row number (" + rowIndex + ") outside allowable range (0.." + maxrow + ")");
            }
    }
    

     后来明白了,HSSF最大sheet导出行为65536行,超出后会自动分为多个sheet。

    需要导出大量数据到同一个sheet的话,可以通过配置导出类型,代码如下:

    ExportParams exportParams = new ExportParams();
    exportParams.setType(ExcelType.XSSF);

    这样就可以成功导出了。

  • 相关阅读:
    解决流氓软件的工具,做个记录
    目前使用较好的网盘搜索引擎
    网页截图分段保存
    国外统计学课程主页Statistical Books, Manuals and Journals
    notepad++ TextFX替代
    只用 4 个月打造机器学习必备技能,这位工程师成功翻转职涯人生
    时序差分学习
    来自NVIDIA开源的pix2pixHD,将Image-to-Image Translation带到了另一个境界
    关于HTML5,最牛逼的10本书!
    IDEA配置和插件
  • 原文地址:https://www.cnblogs.com/sunshinekevin/p/11492802.html
Copyright © 2011-2022 走看看