找了两个小时的导入,简单的都搞一下监听器干嘛,写的还都报错,最简单的不需要监听器的导入
vo类
@Data
public class SupplierImportVo {
@ColumnWidth(50)
@ExcelProperty(value = "*主体名称", index = 0)
@ApiModelProperty("主体名称")
private String supplierName;
@ColumnWidth(50)
@ExcelProperty(value = "*主题代码", index = 1)
@ApiModelProperty("主题代码")
private String supplierCode;
}
controller层
@PostMapping("/importSupplierData")
@ApiOperation(httpMethod = "POST", value = "供应商主体导入模板")
public void importSupplierData(HttpServletResponse response,@RequestParam("file") MultipartFile file) {
try {
//获取文件的输入流
InputStream inputStream = file.getInputStream();
List<SupplierImportVo> lst = EasyExcel.read(inputStream) //调用read方法
//注册自定义监听器,字段校验可以在监听器内实现
// .registerReadListener(new UserListener())
.head(SupplierImportVo.class) //对应导入的实体类
.sheet(0) //导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据
.headRowNumber(1) //列表头行数,1代表列表头有1行,第二行开始为数据行
.doReadSync(); //开始读Excel,返回一个List<T>集合,继续后续入库操作
//模拟导入数据库操作
for (SupplierImportVo userDO:lst){
System.out.println(userDO.toString());
}
}catch (IOException exception){
throw new RuntimeException(exception);
}
}
如果需要监听器的把方法内监听器放开,这个我不用就没写