由于freemarker导出word时,> < &符号被当做是ftl的标签,打开自然报错,因此在执行这些具有特殊符号的数据的时候,我们需要进行转义。
value=value.replaceAll("&","&")
.replaceAll("<","<")
.replaceAll(">",">");
如果需要执行换行操作我们还需要对"\n";进行转义<w:br/>;有时候可以在项目中使用小技巧,直接给业务数据添加上标签
list.add("我是刘备<w:br/>");
list.add("我是张飞<w:br/>");
list.add("我是关羽<w:br/>");
resultMap.put("dataList",list);
如果确实有\n;可以也使用字符串替换的方式替换;
value01.replaceAll("&","&")
.replaceAll("<","<")
.replaceAll(">",">")
.replaceAll("\n","<w:br/>");
这种替换方式必现提前把< 和> 替换掉了,顺序上在后面替换,可以解决遍历换行的问题。