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