定义需要导入的EXCEL模板,EXCEL格式变更,只需要变更对应的枚举信息就可以,如果定义多个EXCEL模板,
只要定义多个枚举就行
package org.util.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 TaskimportExcel {
PUBLIC_DATA_ID("ID", "publicDataId", 0, true),
PUBLIC_DATA_NAME("名称", "publicDataName", 40, true),
TASK_USER_NAME("任务担当人", "taskUserName", 0, false),
END_TIME("任务到期日", "endTime", 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(TaskimportExcel.values()).collect(
Collectors.toMap(TaskimportExcel::getTitleCn, TaskimportExcel::getValueKey));
}
public static Map getExcelTitle() {
return Arrays.stream(TaskimportExcel.values()).collect(
Collectors.toMap(TaskimportExcel::getValueKey, title -> title));
}
public static List checkData(TaskimportExcel 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
package org.util.excel;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
public class importExcelUtil {
private importExcelUtil() {
}
private static final String EXCEL_2003L = ".xls";
private static final String EXCEL_2007U = ".xlsx";
private static final String GENERAL = "General";
private static final String M_D_YY = "m/d/yy";
public static List
调用导入任务信息
测试调用, 拿到List
@ApiOperation(value = "导入任务信息")
@PostMapping("/importTask")
public void importTask(@RequestParam(value = "file") MultipartFile fileToUpload) {
List> excelList;
try {
excelList = importExcelUtil.parseExcel(
fileToUpload.getInputStream(),
fileToUpload.getOriginalFilename(),
importExcelTitle.TaskimportExcel.getKeyValue());
} catch (IOException e) {
log.error("解析excel时失败" + e.getMessage());
}
}



