使用freemarker插件,在浏览器生成word并提供下载
欢使用freemarker生成复杂的word
在开发中总会有很需求,当然导出word也很常用,接下来就看一下是如何在html生成的word。
1.使用freemarker需要注意的点
- 对于刚接触Freemarker得人来说,不用太深入了解freemarker,但是要知道基本使用的xml的标签有哪些,可以再循环list集合中更快速,更准备的找到对数据进行处理的位置,根据个人情况对数据进行快速处理。
(1)<w:t>:字符串,输入的文字内容
(2)<w:r>:表示行
(3)<w:p>:表示段落
(4)<w:tbl>:表示一个form表单
- 对于复杂的word,可能一个word文档中有很多的东西需要展示,可能是一个对象,可能是一个集合,也可能有很多的图片等,所以最基本常用的指令我们也应该知道,知道他的写法规范。
(1)
<#if>
‘内容’
<#elseif>
‘内容’
<#else>
‘内容’
</#if>
(2)
<#list dataList as item>
</#list>
注:list为固定写法,dataList 为传过来的集合数据,对集合进行遍历,as相当于分配,
item为遍历出的每个对象。
2.freemarker自动生成并下载到本地的word模板
3.使用freemarker的步骤
(1)首先我们要把想生成的模板中对应的数据使用** ${}**表示出来,如果有先要显示的图片我们就要把带图片的部分用一个图片把位置站出来,随意找来一张图片就可以。
如下图
(2)将处理好的word文档保存成xml文件格式
如下图
(3)将保存好的xml文件使用工具打开,我使用的是Nodepad++,打开后使用xml在线转换工具格式化,并替换Nodepad++中的内容
如下图
(3)接下来我们就需要手动去更改一些配置,在xml转化的过程中会出现同一个数据被拆分成多个数据,这里我们就需要把数据整合成一个整体,否则freemarker识别不出来,并且对需要一些内容进行遍历
如下图:
整合数据
list的遍历
if的使用,遍历图片
最后一步,将xml文件更改为后缀为.ftl的文件