java动态生成word文档(poi-tl)

目录

主要特性

快速入门

1. 添加依赖

2. 创建 Word 模板

3. 编写 Java 代码

4. 生成word文件

总结


官网地址:中文文档地址

源码地址: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 文档,通过模板与数据分离的方式,大大提高了开发效率和可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值