Repolode
Sayi

Sayi/poi-tl

基于 Apache POI 的 Java 模板引擎,用 Word 模板和数据生成 docx 文档。

可替代:Aspose.Words

Star
5,169
Fork
1,131
未关闭 Issue
64
最近提交
9天前

这是什么?

poi-tl(poi-template-language)根据 .docx 模板和数据模型生成新的 Word 文档。模板中的 {{name}} 等标签可替换为文本、图片、表格、列表或图表,生成结果保留模板中的字体、颜色和版面。

模板本身不含复杂逻辑,只使用标签。条件显示隐藏内容、遍历集合、循环表格行或列等都通过不同类型的标签实现。通过 RenderPolicy 插件接口,可以在文档任意位置执行自定义函数。可选插件支持代码高亮和 Markdown 转 Word,并支持 SpringEL 表达式。

当前 1.12.x 和 1.13.x 版本要求 JDK 1.8 及以上,并依赖 Apache POI 5.2.2 及以上。

核心功能

  • 01可将文本、图片、表格、编号列表和图表渲染到 Word 模板中。
  • 02支持条件显示和循环遍历,包括表格行与列的循环。
  • 03生成的文档保留模板原有的样式。
  • 04提供 RenderPolicy 插件接口,可为任意标签加入自定义逻辑。
  • 05支持批注、附件、书签、超链接以及子模板嵌套。

适用场景

  • 在 Java 后端基于 Word 模板生成合同、发票或报告。
  • 在 Web 应用中导出由数据驱动的 Word 文档供用户下载。
  • 根据业务数据生成包含动态表格和图表的 Word 文件。

快速上手

  1. 1

    在项目中添加 poi-tl Maven 依赖(版本 1.12.2)

  2. 2

    创建包含标签 {{title}} 的 Word 模板,然后在 Java 中编译、渲染并写出结果

使用前须知

  • 需要 JDK 1.8+ 和 Apache POI 5.2.2+;使用较旧的 POI 版本会导致运行时错误。

标签

常见问题

poi-tl 是什么?
基于 Apache POI 的 Java 模板引擎,用 Word 模板和数据生成 docx 文档。 poi-tl(poi-template-language)根据 .docx 模板和数据模型生成新的 Word 文档。模板中的 {{name}} 等标签可替换为文本、图片、表格、列表或图表,生成结果保留模板中的字体、颜色和版面。
poi-tl 可以免费使用吗?用的什么许可证?
poi-tl 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
poi-tl 还在维护吗?
活跃维护中。poi-tl 最近一次提交是在 2026年10月13日。
poi-tl 适合用来做什么?
在 Java 后端基于 Word 模板生成合同、发票或报告。 在 Web 应用中导出由数据驱动的 Word 文档供用户下载。 根据业务数据生成包含动态表格和图表的 Word 文件。
poi-tl 怎么安装和运行?
在项目中添加 poi-tl Maven 依赖(版本 1.12.2) 创建包含标签 {{title}} 的 Word 模板,然后在 Java 中编译、渲染并写出结果
在哪里获取 poi-tl?
源代码和安装说明在 GitHub 上:https://github.com/Sayi/poi-tl

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目