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

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

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

  1. ExportParams exportParams = new ExportParams();
  2. exportParams.setMaxNum();
  3. exportParams.setType(ExcelType.HSSF);
  4. Workbook workbook = ExcelExportUtil.exportExcel(exportParams, PriceExcelModel.class, priceExcelModelList);
  5. File file = FileUtil.createFile(PROCEED_DATA_SOURCE_PATH);
  6. workbook.write(new FileOutputStream(file));
  7. workbook.close();

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

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

错误源为:

  1. public void setRowNum(int rowIndex) {
  2. int maxrow = SpreadsheetVersion.EXCEL97.getLastRowIndex();
  3. if (rowIndex >= 0 && rowIndex <= maxrow) {
  4. this.rowNum = rowIndex;
  5. if (this.row != null) {
  6. this.row.setRowNumber(rowIndex);
  7. }
  8.  
  9. } else {
  10. throw new IllegalArgumentException("Invalid row number (" + rowIndex + ") outside allowable range (0.." + maxrow + ")");
  11. }
  12. }

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

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

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

这样就可以成功导出了。

EasyPoi导出问题的更多相关文章

  1. 关于EasyPoi导出Excel

    如果你觉得Easypoi不好用,喜欢用传统的poi,可以参考我的这篇博客:Springmvc导出Excel(maven) 当然了,万变不离其宗.Easypoi的底层原理还是poi.正如MyBatis ...

  2. 使用easypoi导出excel

    EasyPOI是在jeecg的poi模块基础上,继续开发独立出来的,可以说是2.0版本,EasyPoi封装的目的和jeecg一致,争取让大家write less do more ,在这个思路上easy ...

  3. easypoi导出单个sheet和多个sheet

    今天有时间研究了一下easypoi,感觉使用了easypoi导出excel方便了很多,不用写很多复杂的反射,只需要使用注解和一些工具类就可以实现常用的excel的导出,接下来介绍一下easypoi如何 ...

  4. SpringBoot使用Easypoi导出excel示例

    SpringBoot使用Easypoi导出excel示例 https://blog.csdn.net/justry_deng/article/details/84842111

  5. EasyPoi导出Excel

    这几天一直在忙工作中的事情,在工作中有一个问题,可能是因为刚开始接触这个EasyPoi,对其也没有太多的理解,在项目中就使用了,有一个需求,是要导出项目中所有的表格,今天就对这个需求进行分析和实现吧; ...

  6. easypoi导出动态表头excel

    easypoi导出动态表头excel 1: springBoot项目maven依赖: <dependency> <groupId>cn.afterturn</groupI ...

  7. 使用EasyPOI导出excel示例

    package com.mtoliv.sps.controller; import java.io.IOException; import java.io.OutputStream; import j ...

  8. easyPOI导出excel报错

    http-nio--exec- at :: - excel cell export error ,data is :com.jn.ssr.superrescue.web.qc.dto.Automati ...

  9. Vue+EasyPOI导出Excel(带图片)

    一.前言 平时的工作中,Excel 导入导出功能是非常常见的功能,无论是前端 Vue (js-xlsx) 还是 后端 Java (POI),如果让大家手动编码实现的话,恐怕就很麻烦了,尤其是一些定制化 ...

随机推荐

  1. Spring-@ControllerAdvice 拦截异常并统一处理

    在spring 3.2中,新增了@ControllerAdvice 注解, 可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@Req ...

  2. 微软官方 Github 上的 EF 示例项目 EntityFramework.Docs

    项目地址:https://github.com/aspnet/EntityFramework.Docs/tree/master/samples/core 谢谢浏览!

  3. pytz库时区的坑(转)

    add by zhj: 推荐使用标准库中的dateutil代替pytz 原文:https://www.hongweipeng.com/index.php/archives/1803/ 起步 在djan ...

  4. Logstash处理数据用法示例---待完善

    filter { mutate { rename => [ "message", "blog_html" ] copy => { "blo ...

  5. ASP.NET MVC 实现简单的登录

    1.创建一个控制器   如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; ...

  6. Entity Framework 导航属性(2)

    1.学校 [Table("School")] public partial class School { public School() { Students = new List ...

  7. 微信接口调用'updateTimelineShareData','updateAppMessageShareData' 的踩坑记录

    6月份新版微信客户端发布后,用户从微信内的网页分享消息给微信好友,以及分享到朋友圈,开发者将无法获知用户是否分享完成.具体调整点为: ()分享接口调用后,不再返回用户是否分享完成事件,即原先的canc ...

  8. selenium简单使用

    简介 Selenium是一个用于Web应用程序测试的工具.Selenium可以直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Fi ...

  9. 机器学习实战:基于Scikit-Learn和TensorFlow 第5章 支持向量机 学习笔记(硬间隔)

    数据挖掘作业,需要实现支持向量机进行分类,记录学习记录 环境:win10,Python 3.7.0 SVM的基本思想:在类别之间拟合可能的最宽的间距,也叫作最大间隔分类 书上提供的源代码绘制了两个图, ...

  10. Django 练习班级管理系统二 -- 添加班级数据

    在上一篇中(Django 练习班级管理系统一 https://www.cnblogs.com/klvchen/p/11078174.html),使用的是莫泰对话框的方式提交数据,适用于数据量少的操作. ...