本文目录一览:
- 1、java 使用POI3.7 HSSF 报表导出内存溢出问题
- 2、java poi 生成Excel 速度非常慢,求优化方案?数据才到2000左右的时候就开始变慢了。。
- 3、java excel poi 大数据量50W 内存溢出
- 4、Java中的POI他是干嘛的可以做什么
- 5、java poi进行百万级数据导入 导出 时的瓶颈在哪?又该如何优化?
- 6、java 用POI处理比较大的word和excel文档。
java 使用POI3.7 HSSF 报表导出内存溢出问题
这个主要是excel表格版本的问题2003是有限制的65535,用2007的能导一百万数据,不过内存需要适当的设置大点
java poi 生成Excel 速度非常慢,求优化方案?数据才到2000左右的时候就开始变慢了。。
发现你问题的所在了,你把过多的可重用的东西卸写在了循环内
HSSFCellStyle cellStyle = wb.createCellStyle();
HSSFDataFormat format = wb.createDataFormat();
cellStyle.setDataFormat(format.getFormat("@"));
// HSSFRow row = sheet.createRow(i+2);//这句不可重用
HSSFCell policyNoCell = row.createCell((short) 0);
policyNoCell.setCellStyle(cellStyle);
policyNoCell.setCellValue(new HSSFRichTextString(rs.getString(3)));//这句不可重用
你这个完全可以卸载循环外啊,creat这么多,肯定占内存
就算你有多个style,你也可以只需要creat一次,然后反复调用就好了
切记,以后再代码设计中,一定要考虑最大可能的重用,而不是每次需要去创造(new()、crate什么的),这是一种思维,祝你好运
java excel poi 大数据量50W 内存溢出
50W数库EXCEL打开也有难度,建议导入CSV格式文件,或分多个文件。
关于内存溢出,注意以下几点:
1,分页分批从数据库里查询数据。
2,注意变量的释放,特别是LIST和MAP之类的引用,如果定义成全局变量或静态变量就会很难释放。
3,调大虚拟机内存大小。
Java中的POI他是干嘛的可以做什么
这个是一个用于操作EXCEL和WORD的工具包,不过貌似开发团队解散了,一直没有更新,对WORD的支持不是很好,建议还是使用ITEXT之类吧
java poi进行百万级数据导入 导出 时的瓶颈在哪?又该如何优化?
POI使用Workbook在内存中生成整个文档, 因此到了百万级数据时瓶颈处于内存.
优化方式通常有以下几种方法:
买内存条加大电脑内存
限制每个文件大小, 数据量大时根据最大数量进行分割.
java 用POI处理比较大的word和excel文档。
用它的底层接口,EVentModel来操作会比较省内存,但代码写起来比较麻烦。9M左右就内存溢出的话,应该是你设置的Heap size太小了。增大Heap的大小也是必须的。
如果是xls的,用JExcel会比POI省内存。但它不支持2010。