最近在实际项目中遇到了 Java 填充 Word 模板的需求,涉及文本、列表以及复选框的勾选状态。这里整理了一套基于 Aspose.Words 和 Poi-tl 的工具方案,记录一下核心实现细节。
一、设置 Word 模板
在 Word 中选中需要填充的位置,点击'插入'->'文档部件'->'域',选择域名(MergeField),填入变量名称即可。
普通字段
直接在文档中插入域代码,例如 ${name}。

填充效果如下:

列表字段
操作与普通字段类似,区别在于需要在首行第一列插入列表开始域,首行最后一列插入结束域,中间放置正常字段。格式规范为:StartTable:<数组字段名> 和 EndTable:<数组字段名>。

复选框
复选框的处理稍微特殊一些,直接通过域可能无法完美控制勾选状态。我们采用占位符配合代码逻辑的方式处理。

二、代码实现
1. 引入依赖
主要使用 Hutool、Poi-tl、Aspose.Words 和 Gson。
<!-- hutool 工具类 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.14</version>
</>
com.deepoove
poi-tl
1.9.0-beta
com.aspose
aspose-words
18.8
com.google.code.gson
gson
2.8.9

