From f1208474f771a1c233d7425c8ed13fbaa0d521ac Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期三, 12 三月 2025 09:35:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/5.X' into 5.X --- ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java | 27 +++++++++++++++------------ 1 files changed, 15 insertions(+), 12 deletions(-) diff --git a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java index a6c14ad..b22e6f9 100644 --- a/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java +++ b/ruoyi-common/ruoyi-common-excel/src/main/java/org/dromara/common/excel/utils/ExcelUtil.java @@ -18,6 +18,7 @@ import org.dromara.common.core.utils.file.FileUtils; import org.dromara.common.excel.convert.ExcelBigNumberConvert; import org.dromara.common.excel.core.*; +import org.dromara.common.excel.handler.DataWriteHandler; import java.io.IOException; import java.io.InputStream; @@ -191,6 +192,7 @@ .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 澶ф暟鍊艰嚜鍔ㄨ浆鎹� 闃叉澶辩湡 .registerConverter(new ExcelBigNumberConvert()) + .registerWriteHandler(new DataWriteHandler(clazz)) .sheet(sheetName); if (merge) { // 鍚堝苟澶勭悊鍣� @@ -211,7 +213,7 @@ * @param data 妯℃澘闇�瑕佺殑鏁版嵁 * @param response 鍝嶅簲浣� */ - public static void exportTemplate(List<Object> data, String filename, String templatePath, HttpServletResponse response) { + public static <T> void exportTemplate(List<T> data, String filename, String templatePath, HttpServletResponse response) { try { resetResponse(filename, response); ServletOutputStream os = response.getOutputStream(); @@ -230,20 +232,21 @@ * @param data 妯℃澘闇�瑕佺殑鏁版嵁 * @param os 杈撳嚭娴� */ - public static void exportTemplate(List<Object> data, String templatePath, OutputStream os) { + public static <T> void exportTemplate(List<T> data, String templatePath, OutputStream os) { + if (CollUtil.isEmpty(data)) { + throw new IllegalArgumentException("鏁版嵁涓虹┖"); + } ClassPathResource templateResource = new ClassPathResource(templatePath); ExcelWriter excelWriter = EasyExcel.write(os) .withTemplate(templateResource.getStream()) .autoCloseStream(false) // 澶ф暟鍊艰嚜鍔ㄨ浆鎹� 闃叉澶辩湡 .registerConverter(new ExcelBigNumberConvert()) + .registerWriteHandler(new DataWriteHandler(data.get(0).getClass())) .build(); WriteSheet writeSheet = EasyExcel.writerSheet().build(); - if (CollUtil.isEmpty(data)) { - throw new IllegalArgumentException("鏁版嵁涓虹┖"); - } // 鍗曡〃澶氭暟鎹鍑� 妯℃澘鏍煎紡涓� {.灞炴� - for (Object d : data) { + for (T d : data) { excelWriter.fill(d, writeSheet); } excelWriter.finish(); @@ -299,6 +302,9 @@ * @param os 杈撳嚭娴� */ public static void exportTemplateMultiList(Map<String, Object> data, String templatePath, OutputStream os) { + if (CollUtil.isEmpty(data)) { + throw new IllegalArgumentException("鏁版嵁涓虹┖"); + } ClassPathResource templateResource = new ClassPathResource(templatePath); ExcelWriter excelWriter = EasyExcel.write(os) .withTemplate(templateResource.getStream()) @@ -307,9 +313,6 @@ .registerConverter(new ExcelBigNumberConvert()) .build(); WriteSheet writeSheet = EasyExcel.writerSheet().build(); - if (CollUtil.isEmpty(data)) { - throw new IllegalArgumentException("鏁版嵁涓虹┖"); - } for (Map.Entry<String, Object> map : data.entrySet()) { // 璁剧疆鍒楄〃鍚庣画杩樻湁鏁版嵁 FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); @@ -333,6 +336,9 @@ * @param os 杈撳嚭娴� */ public static void exportTemplateMultiSheet(List<Map<String, Object>> data, String templatePath, OutputStream os) { + if (CollUtil.isEmpty(data)) { + throw new IllegalArgumentException("鏁版嵁涓虹┖"); + } ClassPathResource templateResource = new ClassPathResource(templatePath); ExcelWriter excelWriter = EasyExcel.write(os) .withTemplate(templateResource.getStream()) @@ -340,9 +346,6 @@ // 澶ф暟鍊艰嚜鍔ㄨ浆鎹� 闃叉澶辩湡 .registerConverter(new ExcelBigNumberConvert()) .build(); - if (CollUtil.isEmpty(data)) { - throw new IllegalArgumentException("鏁版嵁涓虹┖"); - } for (int i = 0; i < data.size(); i++) { WriteSheet writeSheet = EasyExcel.writerSheet(i).build(); for (Map.Entry<String, Object> map : data.get(i).entrySet()) { -- Gitblit v1.9.3