| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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())) { |