zxl
2025-03-25 5f30ef778bbdf59d2835ddbf86d2edc6c6e279b5
common/src/main/java/com/ycl/common/utils/excel/OutputExcelUtils.java
@@ -5,6 +5,7 @@
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.ycl.common.utils.excel.convert.ExcelBigNumberConvert;
@@ -21,6 +22,7 @@
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -118,7 +120,7 @@
        }
    }
    private static void deleteDirectoryOrFile(File file) {
    public static void deleteDirectoryOrFile(File file) {
        if (ObjectUtil.isNull(file)) {
            return;
        }
@@ -155,8 +157,10 @@
    public static <T> @NotNull Set<Integer> getSelectFields(List<String> fieldNames, Class<T> clazz) {
        Set<Integer> selectedIndexes = new HashSet<>();
        if (CollUtil.isNotEmpty(fieldNames)) {
            // 反射获取字段属性
            Field[] declaredFields = clazz.getDeclaredFields();
            // 反射获取字段属性,这里只获取easyExcel注解的字段
            Field[] declaredFields = Arrays.stream(clazz.getDeclaredFields())
                    .filter(field -> field.isAnnotationPresent(ExcelProperty.class))
                    .toArray(Field[]::new);
//            // 匹配需要导入的字段
            for (int i = 0; i < declaredFields.length; i++) {
                if (fieldNames.contains(declaredFields[i].getName())) {