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 b22e6f987..711017f25 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 @@ -186,6 +186,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) // 自动适配 @@ -194,6 +211,9 @@ public class ExcelUtil { .registerConverter(new ExcelBigNumberConvert()) .registerWriteHandler(new DataWriteHandler(clazz)) .sheet(sheetName); + if (CollUtil.isNotEmpty(fieldNames)) { + builder.includeColumnFieldNames(fieldNames); + } if (merge) { // 合并处理器 builder.registerWriteHandler(new CellMergeStrategy(list, true));