话不多说直接贴代码
引依赖:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
/**
* 上传excel文件
* @return
*/
@PostMapping("/uploadExcel")
public Result<List<CodeDTO>> excelUpload(@RequestParam("fileName") MultipartFile fileName){
try {
List<CodeDTO> codeInfos = apiService.getCodeInfos(fileName.getInputStream());
return new Result<List<CodeDTO>>().ok(codeInfos);
} catch (IOException e) {
throw new CustomException("获取输入流失败");
}
}
/**
* EXCEL数据上传
* @param inputStream
*/
@Override
public List<CodeDTO> getCodeInfos(InputStream inputStream) {
List<CodeDTO> lists = null;
try {
ExcelReader reader1 = ExcelUtil.getReader(inputStream);
List<List<Object>> stuList = reader1.read(1);
// 需要的结果集合
lists = new ArrayList<>();
// 准备进行数据疯转的对象
CodeDTO codeDTO;
for (List<Object> objects : stuList) {
codeDTO = new CodeDTO();
if (objects.get(0) != null) {
codeDTO.setCode(Integer.valueOf(objects.get(0).toString()));
}
if (objects.get(1) != null) {
codeDTO.setCodeDesc(objects.get(1).toString());
}
lists.add(codeDTO);
}
return lists;
} catch (NumberFormatException e) {
throw new CustomException("Excel读取失败");
}
}