【技术】SpringBoot Word 模板替换

SpringBoot Word 模板替换

  • [什么是 Word 模板替换](#什么是 Word 模板替换)
  • [如何实现 Word 模板替换](#如何实现 Word 模板替换)

什么是 Word 模板替换

模板一般是具有固定格式的内容,其中一部分需要替换。Word 模板通俗的讲是以 Word 的形式制作模板,固定格式和内容,然后将其中的一部分数据替换掉。例如:在颁发证书时,证书大体内容一致,只需要更换姓名以及奖项名称。

如何实现 Word 模板替换

Word 模板替换的方式有多种,对比之后最后选择 HuTool 的工具类。HuTool 还有很多其他的工具类,可以访问官网查看。

准备模板

需要注意:模板内容要求使用双花括号{``{}}定义替换内容。双花括号中的标记内容可以随意,这里我使用了数字作为标记。

导入依赖

xml 复制代码
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.16</version>
</dependency>

Java 核心代码

java 复制代码
public static void main(String[] args) throws IOException {
    // 模板文件路径
    String registerTemplatePath = "C:\\Users\\Riu\\Desktop\\奖状.docx";
    // 输出结果文件路径
    String putFileName = "C:\\Users\\Riu\\Desktop\\Tom-奖状.docx";

    // 替换内容集合
    Map<String, String> textMap = new LinkedHashMap<>();
    textMap.put("0", "Tom");
    textMap.put("1", "《活动名称》");
    textMap.put("2", "特等奖");
    textMap.put("3", "2023");
    textMap.put("4", "08");
    textMap.put("5", "08");

    // 调用工具类,registerTemplatePath 模板路径,textMap 文字内容
    XWPFTemplate render = XWPFTemplate.compile(registerTemplatePath).render(textMap);

    // 输出文件到磁盘
    render.writeToFile(putFileName);
}

转换结果

根据个人测试,带表格和带图片的均可以正常转换,且格式正常。如有问题可以指正。

相关推荐
unicrom_深圳市由你创科技1 小时前
LabVIEW和C#在工业控制中的应用差异是什么?
fpga开发·c#·labview
csdn2015_1 小时前
springboot controller 参数可以是List吗
spring boot·后端·list
xiaohe072 小时前
JAVA系统中Spring Boot 应用程序的配置文件:application.yml
java·开发语言·spring boot
de_wizard2 小时前
DeepSeek API 调用 - Spring Boot 实现
windows·spring boot·后端
唐青枫2 小时前
C#.NET Consul + Steeltoe 深入解析:服务注册发现、健康检查与微服务接入
c#·.net
Flittly2 小时前
【SpringAIAlibaba新手村系列】(4)流式输出与响应式编程
java·spring boot·spring·ai
DowneyJoy2 小时前
【Unity3D补充知识点】常用数据结构分析-集合(List<T>)
数据结构·unity·c#·list
格林威3 小时前
Baumer相机铝型材表面划伤长度测量:实现损伤量化评估的 5 个关键技术,附 OpenCV+Halcon 实战代码!
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·工业相机
Zzxy3 小时前
Spring Security + JWT 简单集成
java·spring boot
※DX3906※3 小时前
SpringBoot之旅4: MyBatis 操作数据库(进阶) 动态SQL+MyBatis-Plus实战,从入门到熟练,再也不踩绑定异常、SQL拼接坑
java·数据库·spring boot·spring·java-ee·maven·mybatis