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();
- 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导出问题的更多相关文章
- 关于EasyPoi导出Excel
如果你觉得Easypoi不好用,喜欢用传统的poi,可以参考我的这篇博客:Springmvc导出Excel(maven) 当然了,万变不离其宗.Easypoi的底层原理还是poi.正如MyBatis ...
- 使用easypoi导出excel
EasyPOI是在jeecg的poi模块基础上,继续开发独立出来的,可以说是2.0版本,EasyPoi封装的目的和jeecg一致,争取让大家write less do more ,在这个思路上easy ...
- easypoi导出单个sheet和多个sheet
今天有时间研究了一下easypoi,感觉使用了easypoi导出excel方便了很多,不用写很多复杂的反射,只需要使用注解和一些工具类就可以实现常用的excel的导出,接下来介绍一下easypoi如何 ...
- SpringBoot使用Easypoi导出excel示例
SpringBoot使用Easypoi导出excel示例 https://blog.csdn.net/justry_deng/article/details/84842111
- EasyPoi导出Excel
这几天一直在忙工作中的事情,在工作中有一个问题,可能是因为刚开始接触这个EasyPoi,对其也没有太多的理解,在项目中就使用了,有一个需求,是要导出项目中所有的表格,今天就对这个需求进行分析和实现吧; ...
- easypoi导出动态表头excel
easypoi导出动态表头excel 1: springBoot项目maven依赖: <dependency> <groupId>cn.afterturn</groupI ...
- 使用EasyPOI导出excel示例
package com.mtoliv.sps.controller; import java.io.IOException; import java.io.OutputStream; import j ...
- easyPOI导出excel报错
http-nio--exec- at :: - excel cell export error ,data is :com.jn.ssr.superrescue.web.qc.dto.Automati ...
- Vue+EasyPOI导出Excel(带图片)
一.前言 平时的工作中,Excel 导入导出功能是非常常见的功能,无论是前端 Vue (js-xlsx) 还是 后端 Java (POI),如果让大家手动编码实现的话,恐怕就很麻烦了,尤其是一些定制化 ...
随机推荐
- Spring-@ControllerAdvice 拦截异常并统一处理
在spring 3.2中,新增了@ControllerAdvice 注解, 可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@Req ...
- 微软官方 Github 上的 EF 示例项目 EntityFramework.Docs
项目地址:https://github.com/aspnet/EntityFramework.Docs/tree/master/samples/core 谢谢浏览!
- pytz库时区的坑(转)
add by zhj: 推荐使用标准库中的dateutil代替pytz 原文:https://www.hongweipeng.com/index.php/archives/1803/ 起步 在djan ...
- Logstash处理数据用法示例---待完善
filter { mutate { rename => [ "message", "blog_html" ] copy => { "blo ...
- ASP.NET MVC 实现简单的登录
1.创建一个控制器 如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; ...
- Entity Framework 导航属性(2)
1.学校 [Table("School")] public partial class School { public School() { Students = new List ...
- 微信接口调用'updateTimelineShareData','updateAppMessageShareData' 的踩坑记录
6月份新版微信客户端发布后,用户从微信内的网页分享消息给微信好友,以及分享到朋友圈,开发者将无法获知用户是否分享完成.具体调整点为: ()分享接口调用后,不再返回用户是否分享完成事件,即原先的canc ...
- selenium简单使用
简介 Selenium是一个用于Web应用程序测试的工具.Selenium可以直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Fi ...
- 机器学习实战:基于Scikit-Learn和TensorFlow 第5章 支持向量机 学习笔记(硬间隔)
数据挖掘作业,需要实现支持向量机进行分类,记录学习记录 环境:win10,Python 3.7.0 SVM的基本思想:在类别之间拟合可能的最宽的间距,也叫作最大间隔分类 书上提供的源代码绘制了两个图, ...
- Django 练习班级管理系统二 -- 添加班级数据
在上一篇中(Django 练习班级管理系统一 https://www.cnblogs.com/klvchen/p/11078174.html),使用的是莫泰对话框的方式提交数据,适用于数据量少的操作. ...