【技术】SpringBoot Word 模板替换
SpringBoot Word 模板替换
- 什么是 Word 模板替换
- 如何实现 Word 模板替换
什么是 Word 模板替换
模板一般是具有固定格式的内容,其中一部分需要替换。Word 模板通俗的讲是以 Word 的形式制作模板,固定格式和内容,然后将其中的一部分数据替换掉。例如:在颁发证书时,证书大体内容一致,只需要更换姓名以及奖项名称。
如何实现 Word 模板替换
Word 模板替换的方式有多种,对比之后最后选择 HuTool 的工具类。HuTool 还有很多其他的工具类,可以访问官网查看。
准备模板
需要注意:模板内容要求使用双花括号{{}}定义替换内容。双花括号中的标记内容可以随意,这里我使用了数字作为标记。

导入依赖
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version>
</dependency>
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);
}
转换结果


根据个人测试,带表格和带图片的均可以正常转换,且格式正常。如有问题可以指正。
相关文章:
【技术】SpringBoot Word 模板替换
SpringBoot Word 模板替换 什么是 Word 模板替换如何实现 Word 模板替换 什么是 Word 模板替换 模板一般是具有固定格式的内容,其中一部分需要替换。Word 模板通俗的讲是以 Word 的形式制作模板,固定格式和内容,然后将其中的一部分数据替换掉…...
java jni nv21和nv12互转
目录 libyuv性能比较 NV12 NV21 YUV420格式介绍 jni YUV420toYUV420SemiPlanar java YUV420toYUV420SemiPlanar java NV12toYUV420SemiPlanar jni NV12toYUV420SemiPlanar...
后端面试话术集锦第二篇:spring boot面试话术
🚗后端面试集锦目录 💖后端面试话术集锦第一篇:spring面试话术💖 💖后端面试话术集锦第二篇:spring boot面试话术💖 💖后端面试话术集锦第三篇:spring cloud面试话术💖 💖后端面试话术集锦第四篇:ElasticSearch面试话术💖 💖后端面试话术集锦第五篇:r…...
Doris中分区和分桶使用教程
1 分区与分桶 Doris中有两层的数据划分,第一层是分区(Partition),第二层是分桶(Bucket), Partition又能分为Range分区和List分区。 Bucket仅支持Hash方式。 1.1 Partition 只能指定…...
电脑不安装软件,怎么将手机文件传输到电脑?
很多人都知道,AirDroid有网页版(web.airdroid.com)。 想要文件传输,却不想在电脑安装软件时,AirDroid的网页版其实也可以传输文件。 然而,要将文件从手机传输文件到网页端所在的电脑时,如果按…...
vue3 publish 出现的问题
vue3项目使用 yarn build 编译出dist文件, 发布后出现错误 #问题与解决 1)登录迭代错误(Maximum call stack size exceeded) >deepclone 的问题 在 GrandhallLayout 中判断菜单和权限中; const mainMenu cloneDeep(router.getRoutes()) lodash.clonedee…...
网络防御和入侵检测
网络防御和入侵检测是维护网络安全的关键任务,可以帮助识别和阻止未经授权的访问和恶意行为。以下是一些基本的步骤和方法,用于进行网络防御和入侵检测。 网络防御: 防火墙设置: 部署防火墙来监控和控制网络流量,阻止…...
【科研论文配图绘制】task5 SciencePlots绘图包入门
【科研论文配图绘制】task5 SciencePlots绘图包入门 task5主要学习了SciencePlots拓展包的出图样式,掌握SciencePlots的安装及具体使用。 SciencePlots作为一个专门用于科研论文绘图的第三方拓展工具包,提供了主流英文科技 期刊(如 Nature、Science 和 …...
R语言常用数学函数
目录 1. - * / ^ 2.%/%和%% 3.ceiling,floor,round 4.signif,trunc,zapsamll 5.max,min,mean,pmax,pmin 6.range和sum 7.prod 8.cumsum,cumprod,cummax,cummin 9.sort 10. approx 11.approx fun 12.diff 13.sign 14.var和sd 15.median 16.IQR 17.ave 18.five…...
公网远程访问局域网SQL Server数据库
文章目录 1.前言2.本地安装和设置SQL Server2.1 SQL Server下载2.2 SQL Server本地连接测试2.3 Cpolar内网穿透的下载和安装2.3 Cpolar内网穿透的注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 数据库的重要性相信大家都有所了解&…...
Apache Celeborn 让 Spark 和 Flink 更快更稳更弹性
摘要:本文整理自阿里云/数据湖 Spark 引擎负责人周克勇(一锤)在 Streaming Lakehouse Meetup 的分享。内容主要分为五个部分: Apache Celeborn 的背景Apache Celeborn——快Apache Celeborn——稳Apache Celeborn——弹Evaluation…...
华为数通方向HCIP-DataCom H12-821题库(单选题:141-160)
第141题 Router-LSA 能够描述不同的链路类型,不属于Router LSA 链路类型的是以下哪一项? A、Link Type 可以用来描述到末梢网络的连接,即 SubNet B、Link Type 可以用来描述到中转网络的连接,即 TranNet C、Link Type 可以用来描述到另一…...
Windows-docker集成SRS服务器的部署和使用
Windows-docker集成SRS服务器的部署和使用 一、Windows Docker安装 Docker Desktop 官方下载地址: https://docs.docker.com/desktop/install/windows-install/ 下载windows版本的就可以了。 注意:此方法仅适用于 Windows 10 操作系统专业版、企业版、…...
element-ui table表格滚动条拉到最右侧 表头与内容不能对齐
1.问题概述 当表格数据太多,会出现纵向滚动条和横向滚动条,把横向滚动条拉到最右侧时,会出现表头与内容不能对齐的现象。 2.解决方法 1.当页面数据加载完毕后,在后面加上 this.$nextTick(() > {this.$refs.table.doLayout()…...
React中的性能测试工具组件Profiler的基本使用
React中的性能测试工具组件Profiler是一个非常有用的工具,它可以帮助我们分析React应用程序的性能瓶颈。在本文中,我们将学习如何使用Profiler组件来测试React应用程序的性能。 首先,让我们来了解一下Profiler组件的基本用法。在React中&…...
提升生产效率,降低运维成本:纺织业物联网网关应用
在众多物联网技术应用中纺织业正逐渐崭露头角。物联网技术通过无线连接纺织设备、PLC、传感器,实现了纺织厂的生产数据信息的远程监控和数据采集、远程管理,为企业提供了更高效、智能的生产方式。智联物联小编在本文中将重点介绍纺织业物联网的应用与通讯…...
【学习笔记】求解线性方程组的G-S迭代法
求解线性方程组的G-S迭代法 // 运行不成功啊function [x,k,index] Gau_Seid(A,b,ep,it_max) % 求解线性方程组的G-S迭代法,其中 % A为方程组的系数矩阵 % b为方程组的右端项 % ep为精度要求,省缺为1e-5 % it_max为最大迭代次数,省缺为100 % …...
Kotlin协程flow缓冲buffer
Kotlin协程flow缓冲buffer 先看一个普通的flow: import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* import kotlinx.coroutines.runBlocking import kotlin.system.measureTimeMillisfun main(args: Array<String>) {val delayTime 100Lru…...
完全免费的GPT,最新整理,2023年8月24日,已人工验证,不用注册,不用登录,更不用魔法,点开就能用
完全免费的ChatGPT,最新整理,2023年8月24日,已人工验证, 不用注册,不用登录,更不用魔法,点开就能用! 第一个:网址地址统一放在文末啦!文末直达 看上图你就能…...
LeetCode538. 把二叉搜索树转换为累加树
538. 把二叉搜索树转换为累加树 文章目录 [538. 把二叉搜索树转换为累加树](https://leetcode.cn/problems/convert-bst-to-greater-tree/)一、题目二、题解方法一:递归(中序遍历与节点更新)方法二:反向中序遍历与累加更新&#x…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
