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()
如果前后都没有“可用行”的话,就会造成这个条件不符合,在执行行插入操作的时候,导致把最后一行的合计行给覆盖掉
注:以上只是我在使用中遇到的问题,特此来记录一下。