目录
官网地址:中文文档地址
源码地址:https://github.com/Sayi/poi-tl
POI-TL (POI Template Language) 是一个基于 Apache POI 的 Word 模板引擎,它通过简单的模板语法和 Java 代码结合,可以快速生成复杂的 Word 文档。
主要特性
-
基于 Word 模板 + 数据模型生成文档
-
支持文本、图片、表格、列表等元素
-
模板语法简单易学
-
高性能,底层使用 Apache POI
快速入门
1. 添加依赖
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.12.2</version>
</dependency>
2. 创建 Word 模板
创建一个名为 template.docx 的 Word 文档,内容如下:
{{title}}
尊敬的{{customer.name}}:
感谢您选择我们的服务!以下是您的订单详情:
订单编号:{{order.id}}
订单日期:{{order.date}}
订单金额:{{order.amount}}
{{?vip}}
您是我们的VIP客户,享受9折优惠!
{{/vip}}
3. 编写 Java 代码
public static void main(String[] args) throws Exception {
// 准备数据模型
Map<String, Object> data = new HashMap<>();
data.put("title", "订单确认书");
Map<String, Object> customer = new HashMap<>();
customer.put("name", "张三");
data.put("customer", customer);
Map<String, Object> order = new HashMap<>();
order.put("id", "ORD20230001");
order.put("date", "2023-05-18");
order.put("amount", "¥1200.00");
data.put("order", order);
data.put("vip", true);
// 加载模板并渲染
XWPFTemplate template = XWPFTemplate.compile("C:\\Users\\wangbingbing\\Desktop\\template.docx").render(data);
// 输出到文件
FileOutputStream out = new FileOutputStream("C:\\Users\\wangbingbing\\Desktop\\output.docx");
template.write(out);
out.close();
template.close();
}
4. 生成word文件
生成的文件内容如下:
订单确认书
尊敬的张三:
感谢您选择我们的服务!以下是您的订单详情:
订单编号:ORD20230001
订单日期:2023-05-18
订单金额:¥1200.00
您是我们的VIP客户,享受9折优惠!
总结
POI-TL 提供了一种简单高效的方式来生成复杂的 Word 文档,通过模板与数据分离的方式,大大提高了开发效率和可维护性。
2098

被折叠的 条评论
为什么被折叠?



