Java使用Freemartker进行Word文档的导出

在经过各种尝试后,确定对于比较复杂的情况,使用Freemarker导出的效果与成功率相对时较高的。当然,过程中也遇到了很多坑,所以记录一下。
注意:目前测试了doc文件的导出,docx文件的导出方案网上是由相关资料的,但是没有亲测成功
其实这种方案在java代码中的处理相对简单,只要传递对象就可以了,其难度在于模板的设计,根据不同模板的需求,总结来说需要利用freemarker的相关语法解决模板的下面几个问题:
1、word中添加列表
2、word中添加图片
3、word中循环的使用(通俗讲就是相似内容的重复)
4、word中map的使用(通俗讲就是不同情况下不同内容的显示)
说明:前两条属于常见使用方法,后两条解释一下:

  • 问题3场景举例:
    需要导出10个工厂的数据信息,每个厂都套用固定表格。
    这种情况其实的模板就是需要把这个固定表格去循环,所以只需做一个厂的模板,剩下的通过循环实现 。
  • 问题4场景举例:
    还是上面的问题,如果每个厂通用的表格不是固定的,或者不仅仅是表格,那么在传递参数时,就不是数组可以搞定的了,需要直接传递对象,那么就要在模板中处理map。

1 模板制作

1.1 模板文件生成

由于freemarker需要处理的为.ftl文件,但其内容就是增加了一些代码语句的xml,所以制作ftl的流程就是:
[1]. 将word的doc文件另存为xml格式
[2]. 在xml中进行变量替换详细见1.2

1.2 模板中的变量


待更新


1.3 如何添加图片


待更新


1.4 如何添加表格


待更新


1.5 关于循环


待更新


1.6 关于Map


待更新


2 Java的调用


待更新


2.1 Maven依赖


待更新


2.2 Word导出工具类参考


待更新


2.3 Web项目下的使用方式


待更新


你可能感兴趣的:(Java使用Freemartker进行Word文档的导出)