使用FreeMarker生成Word文档

这两天的任务是根据漏洞扫描结果和各二级单位的系统备案情况,生成一份全校级别的安全通告,并将安全通告以Word的形式下载下来以供查看。为了完成项目又接触了一个新东西,FreeMarker。

FreeMarker是基于模板和要改变的数据的,作用是生成输出文本。那么首先需要使用FreeMarker Template Language来编写模板,在模板中需要显示的数据使用${data}代替。然后在java中编写一个类,并且实例化一个对象,使用这个对象,为要显示的数据赋值,object.setData(xxx)。最后生成文档并下载。

下面是这次项目中完成的一个例子。使用FreeMarker,需要先导入相应的jar包freemarker-2.3.22.jar

一、新建模板

因为要求最终生成Word文档,所以直接用Word进行最初的模板编写,然后再转化成.ftl格式。这样,我们在Word文档中设置好文档的格式和插值,比直接写一个.ftl的文档要简单多了。

图1是截取的项目中最终需要生成的文档的一部分,其中标红字段是随着期刊和日期变化的,即插值部分,其余部分为文档部分。插值部分需要使用${XXX}代替,如图2所示。

图1  图2


二、将新建好的Word文档另存为Word XML文档(*.xml),然后使用firstobject-XML-editor打开,对文档进行检查编辑。主要是检查插值部分是否有被拆开的情况,所以在编写Word模板时,最好保证插值部分及其前后的格式一致。修改完成后,将其保存为.ftl格式,并将文件copy到myeclipse的项目中。最终生成的部分模板文件如下,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值