File file = new File("C:\\Desktop\\人员基本数据.xlsx");
FileInputStream input = null;
try {
input = new FileInputStream(file);
List<EmployeeExcelDTO> excelDTOS = EasyExcel.read(input, EmployeeExcelDTO.class, null)
.sheet("员工花名册表")
.doReadSync();
System.out.println(excelDTOS.size());
for (EmployeeExcelDTO dto : excelDTOS) {
System.out.println(dto);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
上面是我的读取代码,我输出读取数据的行数,非常合理,说明我是正常读取的,但是输出具体数据时,却打出来都是null,一开始我怀疑是我类的映射问题;
@Data
public class EmployeeExcelDTO {
@ExcelProperty(value = "移动电话",index = 15)
private String phone;
@ExcelProperty(value = "成本中心",index = 10)
private String unit;
@ExcelProperty(value = "政治面貌",index = 25)
private String political;
@ExcelProperty(value = "合同开始日期",index = 33)
@DateTimeFormat("dd/MM/yyyy")
private Date startDate;
@ExcelProperty(value = "合同结束日期",index = 34)
@DateTimeFormat("dd/MM/yyyy")
private Date endDate;
}
我反复排查,完全没问题,最后上网一搜,发现Lombok的 @Data注解和EasyExcel 会冲突
删掉@Data注解 , 自己手动生成Getter和Setter方法,问题迎刃而解