EasyPoi导出问题

摘要:
导出代码如下:工作簿=ExcelExportUtil。exportExcel(newExportParams(),PriceExcelModel。类,priceExcelModelList);Filefile=文件使用。创建文件(PROCEED_DATA_SOURCE_PATH);工作簿.write(newFileOutputStre
导出代码如下:
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);

这样就可以成功导出了。

免责声明:文章转载自《EasyPoi导出问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[教程]Oracle 11g Express 安装和使用教程C++中容器的使用(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

EasyPoi 导入导出Excel时使用GroupName的踩坑解决过程

一、开发功能介绍: 简单的一个excel导入功能 二、Excel导入模板(大致模板没写全): 姓名 性别 生日 客户分类 联系人姓名 联系人部门  备注 材料 综合 采购 张三 男 1994/05/25 1 1 1 张三 开发部   李四 男 1994/05/25 1 1 1 张三 开发部   王五 男 1994/05/25 1 1 1...

阿里 EasyExcel 使用及避坑

github地址:https://github.com/alibaba/easyexcel 原本在项目中使用EasyPoi读取excel,后来为了统一技术方案,改用阿里的EasyExcel。EasyExcel和EasyPoi有一定的相似之处。 EasyExcel和EasyPoi效率对比: 因为数据量少,从效率上看几乎没有差别,EasyExcel略胜一筹...

vue springboot利用easypoi实现简单导出

vue springboot利用easypoi实现简单导出 前言 一、easypoi是什么? 二、使用步骤 1.传送门 2.前端vue 3.后端springboot 3.1编写实体类(我这里是dto,也一样) 3.2控制层 结尾 前言 今天玩了一下vue springboot利用easypoi实现excel的导出,以前没玩过导入导出,...

EasyPoi使用入门

咱们在开发的时候,总会遇到需要通过代码操作办公软件的情况,而excel与word的操作最为频繁。 当然我们Java程序员可以选择JXL或者POI来完成相应的Excel操作,但是大家用过都知道,有些地方感觉还是不够简单,不那么尽如人意。 今天给大家介绍一个EasyPoi,就算我们不会底层的POI,也可以非常轻松的完成Excel的操作。EasyPoi,主打简单...

easypoi入门&amp;lt;1

学习自:http://www.afterturn.cn/doc/easypoi.html 开源地址:https://gitee.com/lemur/easypoi https://gitee.com/lemur/easypoi-spring-boot-starter maven项目,加入依赖 <dependency>...

EasyPoi导入验证功能

1准备好要导入的Excel,注意Excel的标题要和domain中的@Excel(name = "标题")一样 1 导入验证包支持 <!-- JSR 303 规范验证包 --> <dependency> <groupId>org.hibernate</groupId> <artifactId&...