【java实现Word模板导出】Xdocreport和Freemaker

795 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情

如果只是生成简单的word文件的话可以使用 Hutool 上手简单使用方便。 但如果需要导出内容比较复杂的word文件的话用那个就不合适了,这时候就需要Xdocreport这玩意了。

制作模板

新建一个word文档在需要插入变量的地方使用快捷键 Crtl + F9 来生成一个域 域 然后右键单击这个域,选择编辑 编辑域 然后找邮件合并,编辑变量名,变量名需要用${},包起来。这边需要注意的是有些软件编辑Word时,他们的合并邮件选项可能不是我这种样子的,还需要自己找一下。 域代码 这就是一个变量编辑完后的样子。 编辑完成 这个变量的书写方法是freemaker语法,其他的语法可以参考这篇文章:Xdocreport和Freemaker生成docx

这是我写的一个简单模板,下面的代码就按照这个模板来写了。(这个模板是要放到项目里的) word模板

maven 依赖

pom依赖

word模板导出代码

代码 大致思路,就是先声明一下输入输出流,输入流inputStream就是从Resource目录下存放的word文档模板读取到的。而之所以流的声明要写到try的括号里,是因为这样可以节省关闭流的步骤。 随后获取到模板对象report,使用该对象创建其上下文对象,然后将模板对的对应变量放进上下文对象context中。 然后就是设置一下输出流的格式,以及输出的文件名。然后就是使用report将文件生成并导出。 后面的那个捕获异常,是我懒的导入日志,就直接用sout了。实际工作中还是要用log.error来打印报错信息的。

导出结果

最后将生成的文件给大家看一下。 结果

如果想要这个案例源码的话可以私聊我。