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 - NetBeans 生成的 javadoc 中缺少字段说明

java - 使用 apache POI 和 java 访问 excel 数据时出现错误

java - Maven和POI如何更好地理解Java中的Excel文件

java - Apache POI 无法保存 (HWPFDocument.write) 大型 Word 文档文件

java - 这段java代码有问题吗?

java - 有没有办法加载与 java_home/jre/lib/security 文件夹中指定的不同的 cacerts?

java - Eclipse 中的 Maven 在 POM 更改时提示 "Unable to locate the Javac Compiler"

java - java中如何通过socket发送EOF

java - 使用 Apache POI 读取 Excel 文件中的数值时出现问题

java - 如何使用 Apache POI 处理空行?