在初次使用EasyPoi时遇到遍历和赋值问题

1、遍历问题
在进行遍历list的时候,不要使用这种写法

{{$fe: maplist t t.id }}

要使用这种写法

{{$fe: maplist t.id }}

这两种写法相差在遍历list的起别名上,尽管文档中说

fe的写法 fe标志 冒号 list数据 单个元素数据(默认t,可以不写) 第一个元素
{{$fe: maplist t t.id }}

但是还是不要写,我第一次这样写的,导出excel后,第一列的数据就死活赋不上值,后来也是debug代码发现了这个坑。

2、如下图片所示,模版导出,使用fe:、$fe:、!fe:等遍历时,遍历两个{{ }}花括号中间不能有空的列,不然会报模版数据为空NullPointerException;

其他工作表sheet名称可以通过模版数据取值

:

ps:如下图,每一次遍历后,一定要在后面留出一行空行,因为遍历完后,将最后一行覆盖,没有执行下移操作。否则导致遍历赋值失败。

3、最后一行赋值问题
如果是前面进行的list的不确定行数的遍历,最后再给最后一行赋值时,要注意不要紧挨着遍历行写,要中间空出至少一行再写。如果紧挨着写会造成最后一行赋值不成功,这是因为在遍历完了list后,将最后一行给覆盖掉了,没能执行下移插入行的操作。

假设这个合计的money是最后一行,后面设么都没有了,也就是这种情况

在“合计”的前面是不确定行数的list遍历,最后再把money赋上去,此时可以这样写

在这里插入图片描述

如果觉得这样写比较丑,可以在最后一行加一下“注。。。。。。”

或许这两种方式都不想要,也可以另外想法子,最终一定要在合计行的前面或者是后面有行就行
因为代码的判断是这样判断的

在这里插入图片描述
cell.getRowIndex() + rowspan < cell.getRow().getSheet().getLastRowNum()
如果前后都没有“可用行”的话,就会造成这个条件不符合,在执行行插入操作的时候,导致把最后一行的合计行给覆盖掉

注:以上只是我在使用中遇到的问题,特此来记录一下。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值