需求:
根据指定的word模板,用代码生成word文件,数据为业务数据
方案:
引用freemarker工具包
步骤:
- 引入freemarker maven依赖 或者直接导入jar包
<dependency>
<groupId>freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.8</version>
</dependency>
- 编写word模板,编写完后缀是.docx,另存为xml后缀文件,修改文件内容
${XXX}
,调整完修改后缀为.ftl
几个注意点:
(1)生成word文档时,需注意ftl模板中替换字段格式错误,el表达式正确格式:${field},中间不能有标签隔开
(2)若为表格输出,list循环,则在列名之后的数据行进行循环<#list myListData as tmp>...</#list>
,如
<#list myListData as tmp>
<w:tr wsp:rsidR="008F01FC" wsp:rsidRPr="008F01FC" wsp:rsidTr="008F01FC">
<w:tc>
<w:tcPr>
<w:tcW w:w="2074" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
</w:tcPr>
<w:p wsp:rsidR="001D38F7" wsp:rsidRPr="008F01FC" wsp:rsidRDefault="001D38F7">
<w:pPr>
<w:rPr>
<w:rFonts w:hint="fareast"/>
</w:rPr>
</w:pPr>
<w:r wsp:rsidRPr="008F01FC">
<w:rPr