乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > java excel poi <em>大数据</em>量50W 内存溢出-c 导出excel 大

java excel poi <em>大数据</em>量50W 内存溢出-c 导出excel 大

作者:乔山办公网日期:

返回目录:excel表格制作


POI之前的版本不支持大数据量处理,如果数据过多则经常报OOM错误,有时候调整JVM大小效果也不是太好。3.8版本的POI新出来了SXSSFWorkbook,可以支持大数据量的操作,只是SXSSFWorkbook只支持.xlsx格式,不支持.xls格式。
3.8版本的POI对excel的导出操作,一般只使用HSSFWorkbook以及SXSSFWorkbook,HSSFWorkbook用来处理较少的数据量,SXSSFWorkbook用来处理大数据量以及超大数据量的导出。
参考以下博客
http:///BigIdiot/archive/2012/11/26/2789067.html

Workbook workbook = new SXSSFWorkbook(1000);
poi有个机制 每次往内存中写1000条数据,这个1000你可以改的 尽量别大于10000条数据,写完1000条数据后再重新写,这样就不会内存溢出了。
excel2003的行数限制是65536,约2的16次方,这与微软的excel程序的数据结构设计有关;2007会大一些。
目前java的excel操作大多是用poi或jxl,jxl似乎也存在这样的限制,你为何不将其分隔成多个sheet?

建议不要导出excel,当前excel中已经有支持cvs文件。
解释:cvs文件的显方式和xls的显示方式一样,并且此显示方式的执行效率要高于xls文件的额,因为cvs文件存储的是数据直接直接用英文逗号分隔,xls是存储的cell。所以在大量数据的情况下,都是导出为cvs文件。
备注:如果数据过多的话,建议可以分多次查询导出,不要一次性导出,否则效率会很低。
-

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网