当前位置: 首页 > news >正文

如何制作Word模板并用Java导出自定义的内容

1前言

在做项目时会按照指定模板导出word文档,本文讲解分析需求后,制作word模板、修改模板内容,最终通过Java代码实现按照模板自定义内容的导出。

2制作word模板

2.1 新建word文档

新建word文档,根据需求进行编写模板内容,调整行间距和段落格式后将指定替换位置留空。

2.2 插入文档占位符

点击word需要插入占位符的位置,选择引用-插入引文-添加新占位符,编写占位符的内容(代码替换的字段)。
图 1 添加占位符

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

2.3 另存为xml文件

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

图 3 另存为xml文件

2.4 编辑xml文件

通过idea或者文本编辑器打开xml文件,找到占位符1的位置,将其替换成${占位符1}的格式,中间「占位符1」为代码中需替换的字段内容,更改完成字段内容之后通过代码逻辑将其替换为有效的值。

最重要的一步,需要将xml的后缀名更改为ftl。

切记,不要直接从word保存为xml文档后直接修改后缀为ftl,步骤一定要和文档描述的顺序相同。
图 4 占位符代码图片

3模板修改详解

本章以列表、图形占位符为例来讲解修改步骤。

3.1 列表占位符的修改

第一步,模板里需要用变量填充表格,在模板中创建一个两行的表格,并给第一行的表格字段填充占位符。

图 5 列表模板

第二步,将文档另存为xml格式。

第三步,使用文本工具打开xml文件,根据第二节的内容修改占位符中的()为${},在模板中<w:tbl>表示一个表格、<w:tr>表示一行、<w:tc>表示一列。

因为FreeMarker是利用列表一行一行循环填充的,所以我们根据关键字找到<w:tbl>标签,因为第一个<w:tr>是表头注意不要改到了,找到第二个<w:tr>在前后分别加上如下语句即可,如果创建了三行的表格,则后面多余的表格的行<w:tr>需要删掉,添加完如下图所示,如果在文本中标签提示红色波浪线可以忽略。

<#list itemList as item>${item.index}
</#list>

图 6 列表增加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查_查壳脱壳反编译_③

是不是生活太艰难 还是活色生香 我们都遍体鳞伤 也慢慢坏了心肠 你得到你想要的吗 换来的是铁石心肠 可曾还有什么人 再让你幻想 &#x1f3b5; 朴树《清白之年》 查壳 工具介绍Frida-dexDump Frida-dexDump简介 Frida-dexDump是基于Frida的一个工具&…...

通过MobaXterm工具可视化服务器桌面

一、MobaXterm工具 MobaXterm是一款功能强大的远程连接工具&#xff0c;可以连接到各种类型的服务器&#xff0c;包括Linux、Windows和MacOS。支持多种协议&#xff0c;包括SSH、RDP、VNC和Telnet MobaXterm可以通过X11转发功能可视化服务器桌面。 二、MobaXterm工具可视化服务…...

ctf题目

目录 1.文件包含的一道题目&#xff0c;没什么难度&#xff0c; 2.一道sql注入的题目&#xff0c;伪静态 3.限制只能本地访问。 1.文件包含的一道题目&#xff0c;没什么难度&#xff0c; 但是一个点就是它这里去包含的那个文件名就是flag&#xff0c;而不是flag.php也不是f…...

git 更改仓库地址

背景&#xff1a; 项目本来在A仓库进行保管&#xff0c;研发已经开发一段时间了&#xff0c;现在切换到了新的仓库B&#xff0c;研发本地如何将仓库切换到B 解决&#xff1a; # 查看远端地址 git remote -v # 查看远端仓库名 git remote # 重新设置远程仓库 git remote s…...

GLTFExporter是一个用于将3D场景导出为glTF格式的JavaScript库。

demo案例 GLTFExporter是一个用于将3D场景导出为glTF格式的JavaScript库。下面我将逐个讲解其入参、出参、属性、方法以及API使用方式。 入参&#xff08;Input Parameters&#xff09;: GLTFExporter的主要入参是要导出的场景对象和一些导出选项。具体来说&#xff1a; s…...

消息队列经典应用场景

笔者心中,消息队列,缓存,分库分表是高并发解决方案三剑客。 在职业生涯中,笔者曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列 。 这篇文章,笔者结合自己的真实经历,和大家分享消息队列的七种经典应用场景。 1 异步&解耦 笔者曾经负责某电…...

阿里云Salesforce CRM功能差异列表 - Winter‘24

阉割版的阿里云Salesforce由于技术和监管等因素与国际版的Salesforce差距很大&#xff01; 一、Winter‘ 24版差异概况&#xff1a; 1.1. 主要版本&#xff1a; 阿里云上的 Salesforce 提供两个版本&#xff0c;用于生产用途的 CN 版本&#xff08;CN Edition&#xff09;和用…...

WIN10系统下误删除了用户重启无法登录

WIN10系统下误删除了用户重启无法登录 不小心在控制面板的用户组里面删除了当前的用户&#xff0c;在电脑重启后无论怎么输入密码都提示不正确不能登录。 在选择登录的界面同时点击 shift 和重启按钮&#xff1b;在进入的界面选择“疑难问题”&#xff1b;选择进入安全模式&…...

国内ip怎么来回切换:操作指南与注意事项

在数字化时代&#xff0c;互联网已经成为我们日常生活、学习和工作中不可或缺的一部分。然而&#xff0c;随着网络应用的不断深化&#xff0c;用户对于网络环境的稳定性和安全性要求也越来越高。其中&#xff0c;IP地址作为网络中的关键标识&#xff0c;其切换与管理显得尤为重…...

day72Html

常用标签&#xff1a; 分类&#xff1a; 块级标签&#xff1a;独立成行 行级标签&#xff1a;不独立成行&#xff0c;同一行可放多个行级标 注意网页显示时&#xff0c;忽略空白字符,(回车符&#xff0c;空格&#xff0c;tab制表符&#xff09; 一&#xff09;块级标签&#xf…...

C语言内存函数(超详解)

乐观学习&#xff0c;乐观生活&#xff0c;才能不断前进啊&#xff01;&#xff01;&#xff01; 我的主页&#xff1a;optimistic_chen 我的专栏&#xff1a;c语言 点击主页&#xff1a;optimistic_chen和专栏&#xff1a;c语言&#xff0c; 创作不易&#xff0c;大佬们点赞鼓…...

2024年天津体育学院退役大学生士兵专升本专业考试报名安排

天津体育学院2024年退役大学生士兵免试专升本招生专业考试报名安排 一、报名安排 1.报名对象&#xff1a;免于参加天津市文化考试的退役大学生士兵&#xff08;已参加天津市统一报名且资格审核通过&#xff09; 2.报名时间&#xff1a;2024年4月4日9&#xff1a;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版本&#xff0c;由于太局限&#xff0c;需要用到笔记本才能操作&#xff0c;很多车友反馈不方便。特此出个手机版教程&#xff0c;简单easy&#xff0c;妈妈再也不用担心我搞不定啦 一、准备工作 先卸载车机上的autokit 或者 智能互联 app&#xff0c;这步很关…...

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 后端参数重命名&#xff08;后端参数映射&#xf…...

如何使用Java语言发票查验接口实现发票真伪查验、票据ocr

随着时代潮流的发展&#xff0c;企业也在寻找更加便捷、高效的办公模式&#xff0c;尤其是针对财务工作人员而言&#xff0c;繁琐的发票录入、查验工作占据了财务人员的大部分时间。对此&#xff0c;翔云提供了发票识别接口、发票查验接口&#xff0c;那么企业应当如何将这些接…...

CAPL实现关闭TCP连接的几种方式以及它们的区别

在讲正文前,我们有必要复习下关闭TCP连接的过程:四次挥手。 假设A和B建立TCP连接并进行数据传输,当A的数据发送完后,需要主动发起断开连接的请求: A发送FIN报文,发起断开连接的请求B收到FIN报文后,首先回复ACK确认报文B把自己的数据发送完,发送FIN报文,发起断开连接的…...

Git--08--Git分支合并操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Git分支合并操作案例流程客户端&#xff1a;GitExtensions操作步骤&#xff1a;A操作步骤&#xff1a;B操作步骤&#xff1a;C操作步骤&#xff1a;D操作步骤&#…...

Instagram数据提取完全指南:Toutatis实战揭秘与高效应用

Instagram数据提取完全指南&#xff1a;Toutatis实战揭秘与高效应用 【免费下载链接】toutatis Toutatis is a tool that allows you to extract information from instagrams accounts such as e-mails, phone numbers and more 项目地址: https://gitcode.com/GitHub_Trend…...

RT-Thread线程管理与调度机制详解

RT-Thread线程管理深度解析1. 嵌入式实时操作系统中的线程概念在嵌入式实时操作系统(RTOS)中&#xff0c;线程是最基本的调度单位&#xff0c;也被称为任务。与裸机编程的单线程模式不同&#xff0c;RTOS通过多线程机制实现了任务的并发执行。裸机系统通常采用一个无限循环结构…...

Qt实战(五)——高性能图片浏览器的多线程优化

1. 为什么需要多线程优化图片浏览器 当你打开一个包含数百张高清图片的文件夹时&#xff0c;是否遇到过界面卡顿、滚动不流畅的情况&#xff1f;这背后其实是一个经典的性能问题——UI线程被耗时的图片加载操作阻塞了。 在传统的单线程实现中&#xff0c;图片加载、解码、缩略图…...

Pixel Mind Decoder 嵌入式应用初探:STM32设备日志情绪分析

Pixel Mind Decoder 嵌入式应用初探&#xff1a;STM32设备日志情绪分析 1. 场景痛点与解决方案 在工业物联网领域&#xff0c;设备维护一直是个让人头疼的问题。想象一下&#xff0c;工厂里几十台STM32设备日夜运转&#xff0c;工程师们每天要盯着密密麻麻的日志数据&#xf…...

Nomic-Embed-Text-V2-MoE赋能Python爬虫:智能内容分析与去重

Nomic-Embed-Text-V2-MoE赋能Python爬虫&#xff1a;智能内容分析与去重 你是不是也遇到过这样的烦恼&#xff1f;写了个Python爬虫&#xff0c;吭哧吭哧爬了几万条新闻或者商品信息&#xff0c;结果发现里面一大堆内容都是重复的&#xff0c;或者只是换了个说法。用关键词去重…...

风力发电变桨系统避坑指南:从编码器选型到限位开关安装的5个关键细节

风力发电变桨系统避坑指南&#xff1a;从编码器选型到限位开关安装的5个关键细节 在风电行业摸爬滚打多年的工程师们都清楚&#xff0c;变桨系统就像风力发电机组的"神经系统"&#xff0c;任何一个环节的微小失误都可能导致整个系统瘫痪。不同于实验室环境&#xff0…...

Revit模型Web端免费展示:从IFC到GLTF,我踩过的坑和避坑指南

Revit模型Web端免费展示&#xff1a;从IFC到GLTF&#xff0c;我踩过的坑和避坑指南 去年接手一个老旧厂房改造项目时&#xff0c;甲方突然要求提供Web端三维模型展示。作为独立开发者&#xff0c;我花了三个月时间在IFC和GLTF格式之间反复横跳&#xff0c;电脑崩溃了27次&#…...

Windows Server 2008 R2提权实战:用MS15-051漏洞从WebShell到System权限的完整操作记录

Windows Server 2008 R2权限提升实战&#xff1a;从低权限到系统控制的技术剖析 在渗透测试的实战场景中&#xff0c;获取初始立足点往往只是开始。当安全研究人员或红队成员通过Web漏洞获得了一个低权限的WebShell后&#xff0c;如何突破权限限制&#xff0c;获取系统最高控制…...

AI元人文:岐金兰再次致敬黄玉顺教授

岐金兰说&#xff1a;黄玉顺教授一定是在说&#xff0c;我已经指出了&#xff0c;不必多说。不过&#xff0c;岐金兰为了智能时代的多元叙事性权衡&#xff0c;必须多说一句&#xff0c;指出伦理中间件&#xff0c;之后呢&#xff0c;不必多说了。---一、生活儒学的洞见与沉默黄…...

后端开发Java和大模型应用开发怎么选?

一、Java 后端开发&#xff1a;老骥伏枥&#xff0c;卷得头皮发麻Java 后端这玩意儿&#xff0c;说白了就是工业级老油条的战场&#xff0c;技术成熟&#xff0c;生态庞大&#xff0c;一言不合就是 Spring 全家桶&#xff0c;Redis、MySQL、消息队列、分布式、中间件、容器化、…...