你还在用Apache-POI导出Word,早过时了,用了这个真香!
Hello,大家好,我是人见人爱,花见花开的Tabber。
在我们开发中Word导出功能是经常遇到的,那么你都用过哪些方案呢?
目前主流的方案有:Apache POI、Freemarker、OpenOffice、HTML浏览器导出、Jacob、winlib 等。
用过的同鞋想必都知道这些工具没那么好用,不是有版本兼容问题,就是导出格式问题,要不就是学习成本太高。
那有没有学习成本低、兼容性好、开源的、还能跨平台的Word导出插件呢?
目前最新版本为:V1.12.0
介绍
poi-tl(poi template language)是Word模板引擎,使用Word模板和数据创建很棒的Word文档。
在文档的任何地方做任何事情(Do Anything Anywhere)是poi-tl的星辰大海。
对比
特点
特征 | 描述 |
✅文本 |
将标签呈现为文本 |
✅图片 |
将标签渲染为图片 |
✅表格 |
将标签呈现为表格 |
✅编号 |
将标签呈现为编号 |
✅图表 |
条形图(3D条形图)、柱形图(3D柱形图)、面积图(3D面积图)、折线图(3D折线图)、雷达图、饼图(3D饼图)等图表渲染 |
✅ if条件 |
根据条件隐藏或显示某些文档内容(包括文本、段落、图片、表格、列表、图表等) |
✅Foreach 循环 |
根据集合循环遍历某些文档内容(包括文本、段落、图片、表格、列表、图表等) |
✅Loop表格行 | 循环复制渲染表的一行 |
✅Loop表格列 | 循环复制并渲染表格的一列 |
✅Loop有序列表 | 支持有序列表的循环,同时支持多级列表 |
✅代码高亮 | 代码块单词高亮,支持26种语言和数百种着色样式 |
✅Markdown | 将 Markdown 转换为 Word 文档 |
|
在 Word 中插入附件 |
|
完成支持评论、创建评论、修改评论等。 |
|
完整支持结构化文档标签 |
|
文本框中的标签支持 |
|
用另一张图片替换原始图片 |
|
支持在文档中设置书签、锚点和超链接 |
|
完全支持SpringEL表达式,可以扩展更多表达式:OGNL、MVEL... |
|
模板就是样式,代码也可以设置样式 |
|
模板包含子模板,子模板再包含子模板 |
|
Word合并Merge,也可以在指定位置合并 |
|
插件式设计,在文档任意位置执行功能 |
如何引入
maven引入
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.12.0</version>
</dependency>
Gradle
implementation 'com.deepoove:poi-tl:1.12.0'
如何使用
新建Word文档template.docx,包含标签 {{title}}
XWPFTemplate template = XWPFTemplate.compile("template.docx").render(
new HashMap<String, Object>(){{
put("title", "Hi, poi-tl Word模板引擎");
}});
template.writeAndClose(new FileOutputStream("output.docx"));
运行后,即可得到一个Word文档,是不是So Easy!
这里仅仅是一个简单示例,更多内容,可参考使用文档,上面写的也很详细。
梅花十三都来关注了,你不来关注……
END
有热门推荐👇
1.
2.
3.
4.
5.
6.
7.
老规矩,文末上图