正常我们在使用easyExcel进行模板填充时,定义的变量会填充好对应的实际数据,未定义的变量会被清空,但是如果这个未定义的变量其实是模板的一部分,那么清空了就出错了。
在这张图里,上面的是模板填充后导出的文件,下面的是模板文件,而{xxx}就是未定义的变量。
当我们想让一个变量不必填充而以原形式保留时,根据官方文档的说法,我们可以用转义字符"\"来实现这个效果:
但是实际上,当单元格里只有一个变量{}时,转义字符"\"会跟着一起保留下来,如下:
只有当单元格里有另外一个不需要转义的变量存在时,这个单元格里需要转义的变量才能正常转义成功,如下:
那如果单元格里只有一个变量,我们也只想保留单元格里这个转义后的变量,那就可以用到之前听到的未定义的变量{xxx}(这个xxx可以是任何未定义的变量,可根据需要换成其他合适的名称),转义的变量\{\}保留,{xxx}则清空。同样的,如果{xxx}是模板的一部分我们需要保留,也可以用这个方法:
参考:
填充Excel | Easy Excel
解决模板Cell中单纯`\{name\}`,无法有效转换为`{name}`的问题。 by gongycn · Pull Request #3095 · alibaba/easyexcel · GitHub
模板{}转义问题,转义符会保留 · Issue #3356 · alibaba/easyexcel · GitHub