EasyExcel读取不到表格数据,全部字段都是null

先说结论:@Accessors(chain = false)该注解影响EasyExcel通过反射set字段值,导致每条记录值它都能“看见”,但是它不能set到实体类的对应字段里。

原因:当使用 @Accessors(chain = true) 时,Lombok 会为全部字段都生成 setter 方法且会返回 this(对象自身),而不是传统的 void。这可能导致 EasyExcel 在反射调用 setter 时出现异常,或者无法正确识别字段的写入方法。可以测试一下,在具体的实体类中为某个字段添加一个返回this的set方法,其他字段不添加,然后跟原来不添加的时候做对比。

没有添加setsetEmployeeName时
可以看到这里的员工姓名字段是有值的

接下来为字段EmployeeName 添加 setsetEmployeeName 方法

添加set方法

 

员工姓名的值为null

可以看到,员工姓名的值为null,但是其他字段,例如后续的enterpriseId 还是有值,因为我只为employeeName生成set方法。而我们一旦使用@Accessors(chain = true) 时,相当于为每个字段都生成这个方法,那么每个字段的值就都set不进去了。所以这里主要是EasyExcel通过反射机制set的问题导致,只需要去掉这个注释(如果有手写对应方法,也要去掉)即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值