当数据量超出65536条后,在使用HSSFWorkbook或XSSFWorkbook,程序会报OutOfMemoryError:Javaheap space异常
解决方法是:从POI 3.8版本开始,提供了一种基于XSSF的低内存占用的API----SXSSFWorkbook。
SXSSFWorkbook-官方解释:实现“BigGridDemo”策略的流式XSSFWorkbook版本。这允许写入非常大的文件而不会耗尽内存,因为任何时候只有可配置的行部分被保存在内存中。您可以提供用作书面数据基础的模板工作簿。有关详细信息,请参见https://poi.apache.org/spreadsheet/how-to.html#sxssf。
例如:
SXSSFWorkbook sxssfWorkbook = new SXSSFWorkbook();
SXSSFSheet sheet = sxssfWorkbook.createSheet("sheet1");
sheet.setDefaultColumnWidth(22);
SXSSFRow rootRow = sheet.createRow(0);
sxssfWorkbook.write(outputStream);
sxssfWorkbook.close();
当数据量超过65536条时,使用HSSFWorkbook或XSSFWorkbook会遇到内存溢出问题。从POI3.8版本起,引入了SXSSFWorkbook,这是一种低内存占用的API,适用于处理大型数据集,通过只在内存中保存可配置数量的行来避免内存溢出。
725

被折叠的 条评论
为什么被折叠?



