最近在做需求的时候,有一个需求是根据业务提供的word模板导出根据业务规则填充的数据生成的word,具体做法是:
1.先打开业务提供的word模板,然后点击另存为Word XML文档,再将后缀名修改为.ftl文件
2.然后将替换的字段调整为${},这种形式,里面是替换的字符
word文档中的所有内容和样式都可以在其.xml文件中可以看到.
可以先在一个word文档中写一个复选框,然后转成xml查看他的格式.如下
<w:sym w:font="Wingdings 2" w:char="00A3"/> //不勾选的复选框
<w:sym w:font="Wingdings 2" w:char="F052"/> //勾选的复选框
那在改造xml文件中就可以加入逻辑判断进行输出了. 另外,xml文件中嵌套很多层的, 要分析好以上两个标签应该放在哪里.我一开始要尝试了很多次才正常输出
</w:rPr>
<#if stemQualityReview.reviewResult==4>
<w:sym w:font="Wingdings 2" w:char="F052"/><w:t>高:</w:t>
<#else>
<w:sym w:font="Wingdings 2" w:char="00A3"/><w:t>高:</w:t>
<w:t>□高:</w:t> //不勾选的复选框用这个符号也可
</#if>
</w:r>
注意:
1.在做word模板的时候,wps或者word生成模板必须使用后缀为.doc文档,docx文档会存在word版本兼容性问题。
2.内容写入时,要想换行,使用<w:br/>进行换行,但是wps可以识别,word可能会出现兼容报错。
后期生成的word有复选框,有的wps会出现勾选的复选框为圆圈,为解决这个问题,提供一个插件给大家:
下载地址:
链接:https://pan.baidu.com/s/1Mit0-N_QWWDl_oMkKGQT2g?pwd=ayw9
提取码:ayw9
解决办法:
下载Wingdings 2 字体 解压后拷贝在系统字体库里,重新打开就行了。 win10在C:\Windows\Fonts 然后重新打开文档即可