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

标签 java apache-poi

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

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

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

最佳答案

Apache POI 提供低内存占用 SXSSF将数据写入 xlsx 的 API。它不会一次将所有内容加载到内存中,因此它是处理非常大的 Excel 文件时的解决方案。您可能需要考虑这一点。

关于java - apache poi从非常大的xls复制到新的工作簿表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37519345/

相关文章:

java - 在 Spring 中保存两个模型之间的多对多关系

java - hibernate : limit rows in a table

java - Apache POI 测试用例失败,因为它找不到 CTExtensionList 类

java - Java 中 apache POI 的 DSL 包装库

java - 我如何使用 Java 从 excel 中检索整数值

java - 使用阿拉伯字符创建 zip 文件

java - Apache POI 如何添加自定义 DataFormatter 以将 13 位整数处理为字符串而不是数字

java - 错误 NullPointerException 自定义操作栏

java - 从 WSDL 生成的客户端能否生成排除可选 header 元素的请求?

java - 实体管理器隐式事务提交