Java基于Freemarker模板导出Word
准备
- 下载Freemarker jar;
- wps/office创建.doc文件;
- 编辑模板内容后另存为.xml(注意wps存在两种.xml结尾的文件,请按下图选择);
- 修改模板后缀名为.ftl;
- 为了查看方便,建议先将内容格式化下(在线XML格式化即可);
- 将需要动态变化的值替换成,${xxx} 来占位(支持循环,所以批量数据不需要挨个替换);
土亢
- 图片使用base64编码,放在“yyy”的位置:“<w:binData w:name="wordml://xxx.png">yyy</w:binData>”
- 当文档存在图片时,尤其是多张图片需要动态读取时,“wordml://${xxx}.png”中的xxx需要相应动态变化,不然图片会重复哦。
单元格合并时,可在ftl里写相应判断,同上行内容使用“<w:vmerge />”或者“<w:vmerge w:val="continue"/>”来表示合并,否则,使用“<w:vmerge w:val="restart"/>”来另起新行。这里注意的是“vmerge”都是小写,学习过程中在网上看到是“vMerge”,合并不起作用,排查了半天错。
<#assign tempName=""/> ... <#if tempName!=Table.name> <w:vmerge w:val="restart"/> <#assign tempName=Table.name/> <#else> <w:vmerge /> </#if>
源码
更多有意思的内容,欢迎访问rebey.cn
相关推荐
81314797 2020-11-18
89314493 2020-11-03
81941231 2020-09-17
thisisid 2020-09-09
如狼 2020-08-15
82384399 2020-06-16
86384798 2020-05-12
80183053 2020-05-02
86384798 2020-04-26
86384798 2020-04-11
rionchen 2020-04-09
86384798 2020-04-07
86384798 2020-04-04
80183053 2020-03-07
87201943 2020-03-06
83961233 2020-02-26
87201943 2020-02-21