项目中经常使用POI进行 word Excel 生成,对于循环行,循环列,图片,超链接 这些东西的麻烦,又苦于POI的英文文档,所以向大家推荐一下
模板生成神器——poi-ti
建议: 直接下载源码 根据文档 找到需要的功能 进行开发。

环境:
jdk 1.8
springboot 2.X
POI 4.1.2 
POI-ti   版本根据poI的版本来

<dependency>
  <groupId>com.deepoove</groupId>
  <artifactId>poi-tl</artifactId>
  <version>1.10.3</version>
</dependency>

poi-tl(poi template language)是Word模板引擎,使用Word模板和数据创建很棒的Word文档。

在文档的任何地方做任何事情(Do Anything Anywhere)是poi-tl的星辰大海。

1. Why poi-tl

方案

移植性

功能性

易用性

Poi-tl

Java跨平台

Word模板引擎

基于Apache POI,更友好的API

Apache POI

Java跨平台

Apache项目,不仅封装了易用的文档API(文本、图片、表格、页眉、页脚、图表等),也可以在底层直接操作XML结构

文档不全,这里有一个教程:Apache POI Word快速入门

Freemarker

XML跨平台

仅支持文本,很大的局限性

不推荐,需要维护XML结构,代码后期不可维护

OpenOffice

部署OpenOffice,移植性较差

-

需要了解OpenOffice的API

HTML浏览器导出

依赖浏览器的实现,移植性较差

HTML不能很好的兼容Word的格式

-

Jacob、winlib

Windows平台

-

复杂,完全不推荐使用

2. 特性

poi-tl正是一个基于Apache POI的Word模板引擎,并且拥有着让人喜悦的特性。

引擎功能

描述

文本

将标签渲染为文本

图片

将标签渲染为图片

表格

将标签渲染为表格

列表

将标签渲染为列表

图表

条形图(3D条形图)、柱形图(3D柱形图)、面积图(3D面积图)、折线图(3D折线图)、雷达图、饼图(3D饼图)等图表渲染

If Condition判断

隐藏或者显示某些文档内容(包括文本、段落、图片、表格、列表、图表等)

Foreach Loop循环

循环某些文档内容(包括文本、段落、图片、表格、列表、图表等)

Loop表格行

循环复制渲染表格的某一行

Loop表格列

循环复制渲染表格的某一列

Loop有序列表

支持有序列表的循环,同时支持多级列表

代码高亮

word中代码块高亮展示,支持26种语言和上百种着色样式

Markdown

将Markdown渲染为word文档

Word批注

完整的批注功能,创建批注、修改批注等

Word附件

Word中插入附件

图片替换

将原有图片替换成另一张图片

书签、锚点、超链接

支持设置书签,文档内锚点和超链接功能

Expression Language

完全支持SpringEL表达式,可以扩展更多的表达式:OGNL, MVEL…

标签定制

支持自定义标签前后缀

文本框

文本框内标签支持

样式

模板即样式,同时代码也可以设置样式

模板嵌套

模板包含子模板,子模板再包含子模板

合并

Word合并Merge,也可以在指定位置进行合并

用户自定义函数(插件)

在文档任何位置执行函数

poi-tl是一个免费开源的Java类库,你可以非常方便的加入到你的项目中。

源码地址: https://github.com/Sayi/poi-tl

文档地址: http://deepoove.com/poi-tl/