From d3e57f662fc00214c9d1b1caa9a4dd542a9d2e1e Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 31 七月 2026 13:47:29 +0800
Subject: [PATCH] 采购订单入库批次关联

---
 yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java
index f4f17ec..b9ec1ed 100644
--- a/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java
+++ b/yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/util/ExcelUtils.java
@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.framework.excel.core.util;
 
+import cn.idev.excel.ExcelWriter;
 import cn.idev.excel.FastExcelFactory;
 import cn.idev.excel.converters.longconverter.LongStringConverter;
 import cn.iocoder.yudao.framework.common.util.http.HttpUtils;
@@ -33,12 +34,22 @@
     public static <T> void write(HttpServletResponse response, String filename, String sheetName,
                                  Class<T> head, List<T> data) throws IOException {
         // 杈撳嚭 Excel
-        FastExcelFactory.write(response.getOutputStream(), head)
+        ExcelWriter excelWriter = FastExcelFactory.write(response.getOutputStream(), head)
                 .autoCloseStream(false) // 涓嶈鑷姩鍏抽棴锛屼氦缁� Servlet 鑷繁澶勭悊
                 .registerWriteHandler(new ColumnWidthMatchStyleStrategy()) // 鍩轰簬 column 闀垮害锛岃嚜鍔ㄩ�傞厤銆傛渶澶� 255 瀹藉害
                 .registerWriteHandler(new SelectSheetWriteHandler(head)) // 鍩轰簬鍥哄畾 sheet 瀹炵幇涓嬫媺妗�
                 .registerConverter(new LongStringConverter()) // 閬垮厤 Long 绫诲瀷涓㈠け绮惧害
-                .sheet(sheetName).doWrite(data);
+                .build();
+        try {
+            excelWriter.write(data, FastExcelFactory.writerSheet(sheetName).build());
+        } finally {
+            // finish() 灏� workbook 鍐欏叆鍒� response 杈撳嚭娴�
+            excelWriter.finish();
+            // close() 瑙﹀彂 dispose() 娓呯悊涓存椂鏂囦欢锛�
+            // POI SXSSFWorkbook.dispose() 鍙兘杈撳嚭 WARN "Failed to dispose sheet"锛�
+            // 杩欐槸 POI 宸茬煡闂锛堜复鏃舵枃浠舵竻鐞嗘椂 BufferedWriter 宸插叧闂級锛屼笉褰卞搷瀵煎嚭缁撴灉
+            excelWriter.close();
+        }
         // 璁剧疆 header 鍜� contentType銆傚啓鍦ㄦ渶鍚庣殑鍘熷洜鏄紝閬垮厤鎶ラ敊鏃讹紝鍝嶅簲 contentType 宸茬粡琚慨鏀逛簡
         response.addHeader("Content-Disposition", "attachment;filename=" + HttpUtils.encodeUtf8(filename));
         response.setContentType("application/vnd.ms-excel;charset=UTF-8");

--
Gitblit v1.9.3