作者:乔山办公网日期:
返回目录: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文件。
备注:如果数据过多的知话,建议可以道分多次查询导出,不要一次性导出,否则效率会很低。
-