EasyExcel读取不到表格数据,全部字段都是null
先说结论:@Accessors(chain = false)该注解影响EasyExcel通过反射set字段值,导致每条记录值它都能“看见”,但是它不能set到实体类的对应字段里。
原因:当使用 @Accessors(chain = true) 时,Lombok 会为全部字段都生成 setter 方法且会返回 this(对象自身),而不是传统的 void。这可能导致 EasyExcel 在反射调用 setter 时出现异常,或者无法正确识别字段的写入方法。可以测试一下,在具体的实体类中为某个字段添加一个返回this的set方法,其他字段不添加,然后跟原来不添加的时候做对比。
接下来为字段EmployeeName 添加 setsetEmployeeName 方法
可以看到,员工姓名的值为null,但是其他字段,例如后续的enterpriseId 还是有值,因为我只为employeeName生成set方法。而我们一旦使用@Accessors(chain = true) 时,相当于为每个字段都生成这个方法,那么每个字段的值就都set不进去了。所以这里主要是EasyExcel通过反射机制set的问题导致,只需要去掉这个注释(如果有手写对应方法,也要去掉)即可。
上一篇: 几秒钟就充满电!科学
下一篇: 暂无数据