java 导入excel通用工具类
–
提示:以下是本篇文章正文内容,下面案例可供参考
一、定义需要导入的EXCEL模板,EXCEL格式变更,只需要变更对应的枚举信息就可以,如果定义多个EXCEL模板,只要在类中定义多个枚举就行
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class ImportExcelTitle {
@Getter
@AllArgsConstructor
public enum ExpertImportExcel {
USER_NAME("姓名", "user_name", 0, true),
IDNUMBER("身份证号", "idnumber", 0, true),
PHONENUM("手机号码", "phonenum", 0, true),
EMAIL("电子邮箱", "email", 0, false),
ADDRESS("通讯地址", "address", 0, false),
;
private final String titleCn;
private final String valueKey;
private final Integer titleLength;
private final Boolean isRequired;
public static Map getKeyValue() {
return Arrays.stream(ExpertImportExcel.values()).collect(
Collectors.toMap(ExpertImportExcel::getTitleCn, ExpertImportExcel::getValueKey));
}
public static Map getExcelTitle() {
return Arrays.stream(ExpertImportExcel.values()).collect(
Collectors.toMap(ExpertImportExcel::getValueKey, title -> title));
}
public static List checkData(ExpertImportExcel taskImportExcel, String value) {
return checkDataCommon(value, taskImportExcel.getIsRequired(), taskImportExcel.getTitleCn(), taskImportExcel.getTitleLength());
}
}
private static List checkDataCommon(String value, Boolean isRequired, String titleCn, Integer titleLength) {
List result = new ArrayList<>();
if (Boolean.TRUE.equals(isRequired) && StringUtils.isBlank(value)) {
result.add(String.format("%s信息未填", titleCn));
}
if (titleLength != 0 && value != null && value.length() > titleLength) {
result.add(String.format("%s过长", titleCn));
}
return result;
}
}
二、导入的excel处理工具类
对导入的excel进行处理,按照上述ImportExcelTitle.java中的配置,将导入的excel转化成List