当我们需要动态生成word时,通常不仅要能够显示word中的内容,还要能够很好的保持word中的复杂样式,这时如果使用IText和POI去操作,就非常的复杂。这时候,我们应该考虑使用FreeMarker的模板技术快速实现这个复杂的功能,实现思路是这样的:先创建一个word文档,按照需求在word中填好一个模板,然后把对应的数据换成变量(你自己默认好的),然后将文档保存为xml文档格式,使用文档编辑器打开这个xml格式的文档,将之前默认好的变量用${}替换,使用Freemarker读取这个文档然后替换掉变量,输出word文档即可

具体过程如下:

  1.创建带有格式的word文档,将该需要动态展示的数据使用变量替换。

java导出文件到指定文件夹 java导出数据到word_另存为

2. 将刚刚创建的word文档另存为xml格式放到项目中的ftl文件中。

3.编辑这个XMl文档将之前默认好的变量用${}替换

java导出文件到指定文件夹 java导出数据到word_xml_02

4、使用java封装数据

java导出文件到指定文件夹 java导出数据到word_数据_03

5、工具类方法(FileDownloadZipUtil.downLoadWordOrSheetsExcelToZip)

java导出文件到指定文件夹 java导出数据到word_另存为_04

6、打包下载方法

java导出文件到指定文件夹 java导出数据到word_另存为_05