Excel转换内存溢出,有不有什么解决方案

签署文件EB装试8月份数据月报(内存占用大).zip (4.4 MB)

-Xmx2000m
public static void main(String[] args) throws Exception {
final byte[] bytes1 = image2byte(“D:\签署文件EB装试8月份数据月报(内存占用大).xlsx”);
Workbook workbook = new Workbook(new ByteArrayInputStream(bytes1));
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
// 缩放到一个页面(如果列太多,太长)
// pdfSaveOptions.setAllColumnsInOnePagePerSheet(true);
FileOutputStream pdf = new FileOutputStream(“D:\签署文件EB装试8月份数据月报(内存占用大).pdf”);
final BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(pdf);
workbook.save(bufferedOutputStream, pdfSaveOptions);
System.out.println();
}

@Lycheng,
读写大文件,我们提供了内存优先模式。请参考以下文档:

这个文件才4M大小,算不上大文件呀

我先看一下这两个文档,不知道有不有效果

@Lycheng,
经过我们的进一步测试,内存主要是消耗发生在文件转换到PDF的过程。 主要是由chart引起的,当把chart删除后,文件转换内存消耗是很少的。我们将建立新的问题单进行研究。一旦有更新,我们将即时通知你。

我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。

CELLSJAVA-45627: 当转换文件到PDF时内存消耗过大

@Lycheng
Chart 中的数据有点多,从几万到10来万,导致转换过程中占用的内存太大。 我们会尽快研究这个问题。

好的,等你们的好消息,我会持续关注这个issue

@Lycheng,
感谢你的反馈。一旦有更新,我们将即时通知你。

你好 @Lycheng
Aspose.cells for java 23.10 已发布. 我们对这个问题的内存使用进行了优化.

我们测试结果是内存使用和消耗时间,都有了30%-50%的优化.
请使用Aspose.cells for java 23.10, 然后告诉我们您的反馈,谢谢.

好的,多谢,我后面会试一下

@Lycheng
不客气。如果你有任何疑问,请随时联系我们。

The issues you have found earlier (filed as CELLSJAVA-45627) have been fixed in Aspose.Cells for Java 23.12.