项目场景:
EasyPoi word导出
问题描述1
easypoi 模板导出 我直接在map的value输入空格或"",出来的是{{,两个左花括号,咋解决
解决方案:
exportMap.put("key", "\u00A0"); //空格
前端效果:
其他无效解决方案:
无效解决方案1
网上看到这种方案,也是我初次尝试方案,无效。
exportMap.put("key", " "); //空格
exportMap.put("key", " "); //空格
无效解决方案2
exportMap.put("key", "&NULL&"); //空格
无效解决方案3
本来想着通过前端处理,比如后端值为空返回前端值为-,然后用三元运算符处理,把-转为空或者空格。后面发现尝试失败。
问题描述2
easypoi 模板导出 map的value有值但是永远只输出{{key}},不输出具体的值,咋解决
前端效果如下:(导出时具体值不填充word文档)
解决方案:
1-注意{}是英文符号,不是中文符号。
2-不要有空格
上述方案无效怎么办:
我在导出word文档时候碰到了这个问题,{}是英文但是还是无效,百思不得其解。{{key}}是我赋值粘贴到文档中的,后面我尝试删除手写发现就生效了,对比如下:
导出模板:
导出效果:
上面可以看出{{key}}都是英文符号,但是有的能填充值,有的不能。
这是因为格式的问题,只需要把能填充值的{{key}}复制覆盖掉无效的{{key}}即可,至于为什么会产生这个问题,可能是你复制粘贴时候产生的,但是肉眼是看不出来的。
补充:
有一个很有意思的现象,在word中英文输入法状态下输入单引号时候再
【ctrl+z】会让单引号变化格式,这个在用三元运算符的时候需要注意:
这个现象如下
先在’a’后输入单引号
然后【ctrl+z】
可以看出两者不同,然后再一次【ctrl+z】,才会恢复原样。
这个现象还可以这么尝试,英文状态下输入单引号和中文状态下的单引号很像,感觉是同样格式。(先在’a’后输入英文单引号,然后输入中文单引号,看下对比)
把中文输入的左单引号去掉,更容易对比
不知道为什么,大家word文档也是这样吗?
我在使用英文单引号时候只能打出单引号然后【ctrl+z】,感觉很麻烦。