如何制作Word模板并用Java导出自定义的内容
1前言
在做项目时会按照指定模板导出word文档,本文讲解分析需求后,制作word模板、修改模板内容,最终通过Java代码实现按照模板自定义内容的导出。
2制作word模板
2.1 新建word文档
新建word文档,根据需求进行编写模板内容,调整行间距和段落格式后将指定替换位置留空。
2.2 插入文档占位符
点击word需要插入占位符的位置,选择引用-插入引文-添加新占位符,编写占位符的内容(代码替换的字段)。

添加后的占位符是用左右括号包住的,如:(占位符字段)。

2.3 另存为xml文件
将所有的占位符插入完毕后,将word文档另存为xml文件。

2.4 编辑xml文件
通过idea或者文本编辑器打开xml文件,找到占位符1的位置,将其替换成${占位符1}的格式,中间「占位符1」为代码中需替换的字段内容,更改完成字段内容之后通过代码逻辑将其替换为有效的值。
最重要的一步,需要将xml的后缀名更改为ftl。
切记,不要直接从word保存为xml文档后直接修改后缀为ftl,步骤一定要和文档描述的顺序相同。

3模板修改详解
本章以列表、图形占位符为例来讲解修改步骤。
3.1 列表占位符的修改
第一步,模板里需要用变量填充表格,在模板中创建一个两行的表格,并给第一行的表格字段填充占位符。

第二步,将文档另存为xml格式。
第三步,使用文本工具打开xml文件,根据第二节的内容修改占位符中的()为${},在模板中<w:tbl>表示一个表格、<w:tr>表示一行、<w:tc>表示一列。
因为FreeMarker是利用列表一行一行循环填充的,所以我们根据关键字找到<w:tbl>标签,因为第一个<w:tr>是表头注意不要改到了,找到第二个<w:tr>在前后分别加上如下语句即可,如果创建了三行的表格,则后面多余的表格的行<w:tr>需要删掉,添加完如下图所示,如果在文本中标签提示红色波浪线可以忽略。
<#list itemList as item>${item.index}
</#list>

第四步,由于程序中赋值的list为itemList,标签中作为item,所以第二步xml中的占位符${字符名相关文章:
如何制作Word模板并用Java导出自定义的内容
1前言 在做项目时会按照指定模板导出word文档,本文讲解分析需求后,制作word模板、修改模板内容,最终通过Java代码实现按照模板自定义内容的导出。 2制作word模板 2.1 新建word文档 新建word文档,根据需求进行编写模板内容,调整行间距和段落格式后将指定替换位置留空。…...
ubuntu 安装配置samba服务器完整教程
ubuntu 安装配置samba服务器完整教程 问题描述解决方法郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Intel arm64 OS:ubuntu16.04 问题描述 在安卓驱动系统开发的过程中,会需要搭建服务器,又需要搭建samba服务器,下面就…...
【APP_TYC】数据采集案例天眼APP查_查壳脱壳反编译_③
是不是生活太艰难 还是活色生香 我们都遍体鳞伤 也慢慢坏了心肠 你得到你想要的吗 换来的是铁石心肠 可曾还有什么人 再让你幻想 🎵 朴树《清白之年》 查壳 工具介绍Frida-dexDump Frida-dexDump简介 Frida-dexDump是基于Frida的一个工具&…...
通过MobaXterm工具可视化服务器桌面
一、MobaXterm工具 MobaXterm是一款功能强大的远程连接工具,可以连接到各种类型的服务器,包括Linux、Windows和MacOS。支持多种协议,包括SSH、RDP、VNC和Telnet MobaXterm可以通过X11转发功能可视化服务器桌面。 二、MobaXterm工具可视化服务…...
ctf题目
目录 1.文件包含的一道题目,没什么难度, 2.一道sql注入的题目,伪静态 3.限制只能本地访问。 1.文件包含的一道题目,没什么难度, 但是一个点就是它这里去包含的那个文件名就是flag,而不是flag.php也不是f…...
git 更改仓库地址
背景: 项目本来在A仓库进行保管,研发已经开发一段时间了,现在切换到了新的仓库B,研发本地如何将仓库切换到B 解决: # 查看远端地址 git remote -v # 查看远端仓库名 git remote # 重新设置远程仓库 git remote s…...
GLTFExporter是一个用于将3D场景导出为glTF格式的JavaScript库。
demo案例 GLTFExporter是一个用于将3D场景导出为glTF格式的JavaScript库。下面我将逐个讲解其入参、出参、属性、方法以及API使用方式。 入参(Input Parameters): GLTFExporter的主要入参是要导出的场景对象和一些导出选项。具体来说: s…...
消息队列经典应用场景
笔者心中,消息队列,缓存,分库分表是高并发解决方案三剑客。 在职业生涯中,笔者曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列 。 这篇文章,笔者结合自己的真实经历,和大家分享消息队列的七种经典应用场景。 1 异步&解耦 笔者曾经负责某电…...
阿里云Salesforce CRM功能差异列表 - Winter‘24
阉割版的阿里云Salesforce由于技术和监管等因素与国际版的Salesforce差距很大! 一、Winter‘ 24版差异概况: 1.1. 主要版本: 阿里云上的 Salesforce 提供两个版本,用于生产用途的 CN 版本(CN Edition)和用…...
WIN10系统下误删除了用户重启无法登录
WIN10系统下误删除了用户重启无法登录 不小心在控制面板的用户组里面删除了当前的用户,在电脑重启后无论怎么输入密码都提示不正确不能登录。 在选择登录的界面同时点击 shift 和重启按钮;在进入的界面选择“疑难问题”;选择进入安全模式&…...
国内ip怎么来回切换:操作指南与注意事项
在数字化时代,互联网已经成为我们日常生活、学习和工作中不可或缺的一部分。然而,随着网络应用的不断深化,用户对于网络环境的稳定性和安全性要求也越来越高。其中,IP地址作为网络中的关键标识,其切换与管理显得尤为重…...
day72Html
常用标签: 分类: 块级标签:独立成行 行级标签:不独立成行,同一行可放多个行级标 注意网页显示时,忽略空白字符,(回车符,空格,tab制表符) 一)块级标签…...
C语言内存函数(超详解)
乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 点击主页:optimistic_chen和专栏:c语言, 创作不易,大佬们点赞鼓…...
2024年天津体育学院退役大学生士兵专升本专业考试报名安排
天津体育学院2024年退役大学生士兵免试专升本招生专业考试报名安排 一、报名安排 1.报名对象:免于参加天津市文化考试的退役大学生士兵(已参加天津市统一报名且资格审核通过) 2.报名时间:2024年4月4日9:00-4月5日17…...
linux bypy 定时备份到百度网盘
安装 # 先卸载安装的python-pip sudo yum remove python-pip# 下载get-pip.py文件 wget https://bootstrap.pypa.io/pip/2.7/get-pip.py sudo python get-pip.py直接访问这个地址下载文件,再导入linux更快! https://bootstrap.pypa.io/pip/2.7/get-pip.py 连接 复制上面的连…...
星光/宝骏/缤果/长安 车机CarPlay手机操作破解教程V2.0版本(无需笔记本、无需笔记本、无需笔记本)
之前写了个1.0版本,由于太局限,需要用到笔记本才能操作,很多车友反馈不方便。特此出个手机版教程,简单easy,妈妈再也不用担心我搞不定啦 一、准备工作 先卸载车机上的autokit 或者 智能互联 app,这步很关…...
Spring Web MVC的入门学习(一)
目录 一、什么是 Spring Web MVC 1、MVC 定义 二、学习Spring MVC 1、项目准备 2、建立连接 2.1 RequestMapping 注解的学习 2.2 RequestMapping 使用 3、请求 3.1 传递单个参数 3.2 传递多个参数 3.3 传递对象 3.4 后端参数重命名(后端参数映射…...
如何使用Java语言发票查验接口实现发票真伪查验、票据ocr
随着时代潮流的发展,企业也在寻找更加便捷、高效的办公模式,尤其是针对财务工作人员而言,繁琐的发票录入、查验工作占据了财务人员的大部分时间。对此,翔云提供了发票识别接口、发票查验接口,那么企业应当如何将这些接…...
CAPL实现关闭TCP连接的几种方式以及它们的区别
在讲正文前,我们有必要复习下关闭TCP连接的过程:四次挥手。 假设A和B建立TCP连接并进行数据传输,当A的数据发送完后,需要主动发起断开连接的请求: A发送FIN报文,发起断开连接的请求B收到FIN报文后,首先回复ACK确认报文B把自己的数据发送完,发送FIN报文,发起断开连接的…...
Git--08--Git分支合并操作
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Git分支合并操作案例流程客户端:GitExtensions操作步骤:A操作步骤:B操作步骤:C操作步骤:D操作步骤&#…...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一:HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二:Floyd 快慢指针法(…...
Linux中INADDR_ANY详解
在Linux网络编程中,INADDR_ANY 是一个特殊的IPv4地址常量(定义在 <netinet/in.h> 头文件中),用于表示绑定到所有可用网络接口的地址。它是服务器程序中的常见用法,允许套接字监听所有本地IP地址上的连接请求。 关…...
