poi word-01-概览
2019年2月14日大约 2 分钟
学习的目标
可以用 word 模板+元数据=指定的 word 文档信息。
word 的本质是什么?
原来学习 poi 生成 excel 的时候,其实 excel 的本质就是 xml。
那么 word 呢?
其实也是一样的。
word 与 xml 的故事
我新建了一个 word 文件,内容如下:
其实word文档的本质还是xml文件。
如果你知道这个技巧,那么就可以直接将word视为xml文件,然后结合Freemarker等模板处理即可。
保存为 xml 文件之后,内容如下:
(隐藏掉了大部分样式之类的信息)
。如果你知道这个技巧,那么就可以直接将word视为xml文件,然后结合Freemarker等模板处理即可
....
....
word 与 Freemarker 等模板
写一份 word 模板
将需要替换的地方,写成
${XXX}
便于 FTL 替换的形式。将
XXX.docx
文件另存为XXX.xml
文件。直接将 xml 文件利用 FTL 生成替换即可。
然后将生成后的文件重新保存为
XXX.docx
当然,这个过程可以利用代码直接隐藏细节。
word 视为 xml 的优缺点
优点实现起来非常简单
缺点就是不够优雅,也不够灵活。如果想调整样式等信息,则需要对 xml 进行理解和处理。
拓展阅读
poi-tl 是一款基于 poi+FTL 思想的框架。
设计的比较不错,值得借鉴。
参考资料
贡献者
binbin.hou