按照模板java动态生成word文档

        最近在做一个出卷系统,需要通过试卷模板从数据库中抽取题目,然后按照模板的样式生成完整的试卷,所以研究了一下,通过Java生成word文档的方法。我尝试了不同的方法,1、使用freemarker模板生成word文档;2、使用POI生成word文档;3、使用docx4j生成word文档。文档最后有三种方式的完整代码及所需jar包。

1、使用freemarker模板生成word文档

      1.1、首先准备好一个(office2003)word文档当做模板。文档中图片、需要写进word文档的内容已经使用占位符代替,生成过程中将会根据实际情况进行替换。准备好的word模板如下:

文档中${  }中的内容就是要替换的内容,也就是你想写进word文档中的内容。注意在要插入图片的位置必须先随便放一张图片在那里进行占位,固定好位置。

 

      1.2、然后将word文档另存为“Word XML文档”,点击word中的文件---->另存为----->保存类型选择“word 2003 XML文档”。

 

       1.3、使用xml编辑器打开刚刚你另存为的.xml文件进行编辑,我用的编辑器是Notepad++,我觉得很好用,可以编辑各种文件。打开之后如图所示:

 

      然后按Ctrl+F进行查找$,进行查看你写的占位符是否被xml中修饰的部分拆开了,拆开的形式如下:

 

      需要将拆开的部分还原,将$和{p_three}之间的部分删除,删除后如图:更改完成后,需要将你的图片占位的地方中的BASE64字符串替换为${image},${image}可以随便指定,BASE64字符串就是上图中那一大堆黑黑的字符,全部删掉${image}。换成后面程序中将使用这个替换图片。完成后,将xml直接重命名为test.ftl。

1.4、代码的编写

   只要在代码中替换.ftl文件的位置,和输出位置

然后将你从数据库中查出的内容替换到占位符就OK了。

参数前面的字符串为你在${ } 中写的占位符,第二个参数为写入的真正内容。生成的word文档如图

但是这种方式word格式比较死板,模板比较固定,不能符合生成试卷的要求,最后在项目中没有用这个方法。最后在项目中我用的是docx4j,因为这种方式排版word比较灵活。

freemarker生成word完整代码及jar包:代码及jar包

POI生成word完整代码及jar包:代码及jar包

docx4j生成word完整代码及jar包:代码及jar包

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值