工作中遇到一个需求,需要将富文本内容导出到word表格中。之前有做过将word模板文档先转成xml格式作为模板,再使用freemarker进行导出的方式,写过一篇博客如下:
使用freemarker解决easypoi导出Word表格错位的问题_esaypoi导出word表格多行循环-优快云博客
但是富文本内容是HTML格式的,上面方法就不适用了,因为xml格式无法解析HTML标签。网上冲浪之后,决定还是使用freemarker,但是将word模版文档转成mht格式作为模板再进行导出。
1. 添加依赖
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
2. 准备mht模板文件
直接将word模板文件另存为mht格式,注意在另存为时要将文件编码设置为“UTF-8”,不然导出结果会有中文乱码。设置位置如下:
再将文件改为ftl格式(直接改文件后缀名即可)。将文件加入到项目中,我是放在了如下位置:
再将文件在idea中打开,按照freemarker的插值语法进行修改。
文件中有很多地方换行用了 “=” 符号连接,这个可以不用管。如下图: