我有非常大的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表格。
答案 0 :(得分:2)
Apache POI提供了一个低内存占用SXSSF API来将数据写入xlsx。它不会立即将所有内容加载到内存中,因此它是处理非常大的excel文件时的解决方案。你可能想要考虑这一点。