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 74dbccbac..c0820deaf 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 @@ -24,9 +24,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.UnsupportedEncodingException; -import java.util.Collection; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Consumer; /** @@ -36,6 +34,17 @@ import java.util.function.Consumer; */ @NoArgsConstructor(access = AccessLevel.PRIVATE) public class ExcelUtil { + private static final ThreadLocal> excludeFields = ThreadLocal.withInitial(HashSet::new); + + public static void excludeFields(String... fields) { + excludeFields.remove(); + Collections.addAll(excludeFields.get(), fields); + } + + + public static Set getExcludeFields() { + return excludeFields.get(); + } /** * 同步导入(适用于小数据量) @@ -195,6 +204,11 @@ public class ExcelUtil { .registerConverter(new ExcelBigNumberConvert()) .registerWriteHandler(new DataWriteHandler(clazz)) .sheet(sheetName); + if(excludeFields.get()!=null && !excludeFields.get().isEmpty()){ + builder.excludeColumnFieldNames(excludeFields.get()); + excludeFields.remove(); + + } if (merge) { // 合并处理器 builder.registerWriteHandler(new CellMergeStrategy(list, true));