From 88845c24da5cf4933cc4db9a93eba232be0c6755 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Mon, 23 Dec 2024 09:43:37 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=AF=BC=E5=87=BAExcel=EF=BC=88?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=88=97=E9=80=89=E6=8B=A9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/common/excel/utils/ExcelUtil.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) 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 a6c14ad51..897123e15 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 @@ -185,6 +185,23 @@ public class ExcelUtil { */ public static void exportExcel(List list, String sheetName, Class clazz, boolean merge, OutputStream os, List options) { + exportExcel(list, sheetName, clazz, merge, os, options, null); + } + + /** + * 导出Excel(支持自定义字段列选择) + * + * @param list 导出数据集合 + * @param sheetName 工作表的名称 + * @param clazz 实体类,用于定义Excel列的映射 + * @param merge 是否合并单元格 + * @param os 输出流,用于将生成的Excel写入指定位置 + * @param options 下拉框选项配置 + * @param fieldNames 自定义导出的字段名称集合,可控制导出的列范围 + * @param 数据类型的泛型 + */ + public static void exportExcel(List list, String sheetName, Class clazz, boolean merge, + OutputStream os, List options, List fieldNames) { ExcelWriterSheetBuilder builder = EasyExcel.write(os, clazz) .autoCloseStream(false) // 自动适配 @@ -192,6 +209,9 @@ public class ExcelUtil { // 大数值自动转换 防止失真 .registerConverter(new ExcelBigNumberConvert()) .sheet(sheetName); + if (CollUtil.isNotEmpty(fieldNames)) { + builder.includeColumnFieldNames(fieldNames); + } if (merge) { // 合并处理器 builder.registerWriteHandler(new CellMergeStrategy(list, true));