美文网首页
Java使用Freemartker进行Word文档的导出

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

作者: 杞梓林 | 来源:发表于2020-10-15 10:47 被阅读0次

    在经过各种尝试后,确定对于比较复杂的情况,使用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文档的导出

          本文链接:https://www.haomeiwen.com/subject/xssnpktx.html