apache poi从非常大的xls复制到新的工作簿表

时间:2016-05-30 06:53:42

标签: java apache-poi

我有非常大的xls文件,其中包含两张。我想将这两个表合并为一个并复制到新工作簿。但是当我尝试访问这个大型xls时,我的内存异常如下所示:

FileInputStream fis = new FileInputStream(new File("input.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(fis);

我尝试将事件api用于xls:http://poi.apache.org/spreadsheet/how-to.html#event_api 但是使用它我们只能读取单元格值。但在这里我需要复制到新的Excel表格。

1 个答案:

答案 0 :(得分:2)

Apache POI提供了一个低内存占用SXSSF API来将数据写入xlsx。它不会立即将所有内容加载到内存中,因此它是处理非常大的ex​​cel文件时的解决方案。你可能想要考虑这一点。