您的位置:首页 > 其它

word导出时freeMarker转义字符的处理

2016-06-02 17:35 232 查看
根据ftl模板导出word时,如果填充的字符含有特殊字符< 、>、&,那么导出的word是无法打开的。因为这些字符在导出word时被认为是ftl的标签,正常导出后再打开是会报错。如果以xml的方式打开,会发现所有内容都是完整的,唯独上面三个特殊字符出问题。

为了解决这个问题,首先我新建一个word,在里面填上上面三个特殊字符,然后保存为xml。在该xml中找到对应的字符,发现已经转义了  < 对应<      >对应>    &对应&

        可以看出,如果填充的是转义后的字符是可以正常打开的。所以要在填充字符之前检测私服是否含有上述特殊字符,如果有就需要转义。代码如下:

/**
* 处理转义字符
* @param str
* @return
*/
private String transform(String str){

if(str.contains("<")||str.contains(">")||str.contains("&")){
str=str.replaceAll("&", "&");
str=str.replaceAll("<", "<");
str=str.replaceAll(">", ">");
}

return str;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: