解决easyExcel模板填充时转义字符\{xxx\}失效

前言:

正常我们在使用easyExcel进行模板填充时,定义的变量会填充好对应的实际数据,未定义的变量会被清空,但是如果这个未定义的变量其实是模板的一部分,那么清空了就出错了。

正文:

在这张图里,上面的是模板填充后导出的文件,下面的是模板文件,而{xxx}就是未定义的变量。

当我们想让一个变量不必填充而以原形式保留时,根据官方文档的说法,我们可以用转义字符"\"来实现这个效果:

但是实际上,当单元格里只有一个变量{}时,转义字符"\"会跟着一起保留下来,如下:

只有当单元格里有另外一个不需要转义的变量存在时,这个单元格里需要转义的变量才能正常转义成功,如下:

那如果单元格里只有一个变量,我们也只想保留单元格里这个转义后的变量,那就可以用到之前听到的未定义的变量{xxx}(这个xxx可以是任何未定义的变量,可根据需要换成其他合适的名称),转义的变量\{\}保留,{xxx}则清空。同样的,如果{xxx}是模板的一部分我们需要保留,也可以用这个方法:

参考:

填充Excel | Easy Excel快速使用easyexcel的填充方式来完成excel的写入icon-default.png?t=N7T8https://easyexcel.opensource.alibaba.com/docs/current/quickstart/fill

解决模板Cell中单纯`\{name\}`,无法有效转换为`{name}`的问题。 by gongycn · Pull Request #3095 · alibaba/easyexcel · GitHub目前的版本仅支持Cell中有具体的需要替换的Variable时,\{name\}会被有效转换为{name},比如\{name\}被忽略,{name},会被转换为{name}被忽略,张三;但是如果cell中没有有效的Variable,则\{name\}会保持原样,不会变为期望的{name}。所以当判断,Cell中没有有效的变量时,简单的将\{和\}替换为{和}解决该问题。icon-default.png?t=N7T8https://github.com/alibaba/easyexcel/pull/3095

模板{}转义问题,转义符会保留 · Issue #3356 · alibaba/easyexcel · GitHub单个\{name\}会保留原样\{name\}, 如果想生成结果为{name}, 可以加个{XXX}占位符. 譬如: \{name\}{XXX任意字符}, 结果为{name}icon-default.png?t=N7T8https://github.com/alibaba/easyexcel/issues/3356

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值