SpringBoot easypoi 自定义序号列为空自动忽略行数据问题

        我们使用easypoi导入数据时,可能会忽略这一点,只注意到了使用标题所占行数,以及表头所占行数,很容易忽略到这个问题,这个问题也是测试给我反馈来的问题,一开始我也没意识到,阿西吧,查阅了好多资料都没有找到问题所在!

        我们通常导入导出模板会自定义一个序号列,非实体字段,通常在列首,如下图:

当我在序号列不写内容时,此列的数据就会被自动忽略,如果excel表中,所有序号列都没有内容时,就只会读取导入第一行数据。

因为在读取excel表中数据前我们设置了以下内容:

MultipartFile file = entity.getValue();// 获取上传文件对象
ImportParams params = new ImportParams();
/*表格标题所占行数*/
params.setTitleRows(2);
/*表头所占据的行数行数,默认1,代表标题占据一行*/
params.setHeadRows(1);
params.setNeedSave(true);

但是默认主键就会变成 序号列  ,录入数据时没有写序号列,没有内容,主键都没有内容怎么可能被读取进去呢。

所以我们在读取前在设置一下主键就可以完美解决了!

ImportParams params = new ImportParams();
/*表格标题所占行数*/
params.setTitleRows(2);
/*表头所占据的行数行数,默认1,代表标题占据一行*/
params.setHeadRows(1);

/*导入excel 把第二列设为主键 否则主键为空会判定为无效数据不导入*/
params.setKeyIndex(1);

params.setNeedSave(true);

默认 params.setKeyIndex(0);  所指的0就是下标,我们的序号列,所以主键改成我们实体的必填字段就可以了,完美解决!

文章中若有问题还烦请大家指出~么么么么么么么

.

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值