From 923d3cae54bb80886276c362c1fc89abbca1ddfc Mon Sep 17 00:00:00 2001 From: bryan <690158801@qq.com> Date: Fri, 14 Mar 2025 10:55:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BD=BF=E7=94=A8=E4=B8=B4?= =?UTF-8?q?=E6=97=B6=E6=96=87=E4=BB=B6=E7=9A=84=E9=80=89=E9=A1=B9,?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=A4=A7=E9=87=8F=E5=9B=BE=E7=89=87=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=97=B6OOM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/alibaba/excel/EasyExcelFactory.java | 10 ++++++++++ .../alibaba/easyexcel/test/demo/write/WriteTest.java | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/EasyExcelFactory.java b/easyexcel-core/src/main/java/com/alibaba/excel/EasyExcelFactory.java index 80c40851..42637cb8 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/EasyExcelFactory.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/EasyExcelFactory.java @@ -10,6 +10,7 @@ import com.alibaba.excel.read.listener.ReadListener; import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder; import com.alibaba.excel.write.builder.ExcelWriterTableBuilder; +import org.apache.poi.openxml4j.opc.ZipPackage; /** * Reader and writer factory class @@ -18,6 +19,15 @@ import com.alibaba.excel.write.builder.ExcelWriterTableBuilder; */ public class EasyExcelFactory { + /** + * @param tempFilePackageParts whether to save package part data in temp files to save memory + * default is false + * Temporary files prevent OOM, particularly during image export operations. + */ + public static void useTempFilePackageParts(boolean tempFilePackageParts) { + ZipPackage.setUseTempFilePackageParts(tempFilePackageParts); + } + /** * Build excel the write * diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java index 0e7cf2db..1ee0b7ec 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java @@ -94,6 +94,12 @@ public class WriteTest { WriteSheet writeSheet = EasyExcel.writerSheet("模板").build(); excelWriter.write(data(), writeSheet); } + + // 写法4 + fileName = TestFileUtil.getPath() + "simpleWrite" + System.currentTimeMillis() + ".xlsx"; + // 启用临时文件,影响全局 + EasyExcel.useTempFilePackageParts(true); + EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data()); } /**