JAVA关于POI导出Excel内存溢出的解决方案
来源:互联网 发布:mac如何隐藏桌面文件夹 编辑:程序博客网 时间:2024/05/17 00:54
JAVA关于POI导出Excel内存溢出的解决方案
在我们使用JAVA开发过程中,经常要导出查询获得的数据,这些数据一般情况下都是以Excel存储的,因此我们在导出数据的时候要使用JAVA的POI库,其主要是对各种windows平台的数据格式进行操作,在这里,我们是对Excel操作。
生成Excel的过程原理是这样的,首先,我们对数据库进行查询,获取相应的结果集,一般是list集合,然后生成Workbook对象,根据生成的Workbook对象获取sheet对象,根据此sheet对象获取Row对象,再根据Row对象获取Cell对象,最后设置cell单元格的值,循环生成Row和Cell对象,将list中的值写入Cell中,写完后,将Workbook对象写入相应的流对象即可。
在上述过程中,若list集合的数据不多,不会出现问题,倘若list中的数据足够多(几万条以上),则会导致内存溢出,导出失败。
其解决方案就是我们分批导出,每次查询固定数量的list数据集合,将其中的数据写入一个Workbook对象中,依次循环,直至将所有的数据写如Workbook中,此解决方案会生成多个Workbook对象,在供浏览器下载的时候也会有问题,因此,我们还要对生成的多个Excel文件进行打包压缩,即调用操作系统的tar命令(一般来说应用都部署在linux环境下)生成一个压缩包,下载此压缩包即可。
注:在讲Workbook对象写入OutputStream流中,在构建OutputStream时其路径不能是web容器中的路径,否则永远只能生成一个Workbook对象,原因不明
1 0
- JAVA关于POI导出Excel内存溢出的解决方案
- poi导出excel内存溢出解决办法
- POI导出excel的解决方案
- POI 内存溢出解决方案
- POI 内存溢出解决方案
- 解决POI导出Excel文件内存溢出问题
- 解决POI大数据导出Excel内存溢出、应用假死
- POI : 解决大批量数据导出Excel产生内存溢出的方案
- 使用Poi的HSSFWorkbook导出Excel大小限制,即内存溢出
- java的excel导出[poi]
- 关于java poi导入导出excel的包冲突问题
- Java导出excel 内存溢出 使用缓存
- java导出2007excel--防止内存溢出
- 关于JAVA 用POI 导出Excel
- poi解析excel内存溢出
- 关于poi导出Excel
- excel 导出,关于POI的使用经验
- java poi 导出excel
- A new way to xss with java applet
- 五月太湖迷笛志愿者体验
- struts2中防止多次提交表单的token标签
- Aerospike C客户端手册———共享内存
- 仿网易云音乐 专辑图片折叠轮播
- JAVA关于POI导出Excel内存溢出的解决方案
- JavaEnhance——枚举、注解及泛型
- 如何将一个excel工作簿中的多张表合并到一张表中
- 一行代码解决点击cell去掉灰色背景方法
- 通过GET和POST方式提交参数给web应用
- python提取piazza的信息
- Yii 框架中 checkBoxList css样式的使用
- 设计模式-借还模式
- 删除文件夹的总结