如何制作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中的占位符${
   字符名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/502241.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

18.8K星开源免费的跨平台密码管理器:KeePassXC

KeePassXC&#xff1a;您的跨平台密码守护神&#xff0c;安全存储&#xff0c;随心所欲&#xff0c;无论何处皆可信手拈来! - 精选真开源&#xff0c;释放新价值。 概览 当你面临一堆应用需要填写各种各样的密码的时候、当你需要记忆各种各样的密码或是需要保存保密文件或私密…

全国青少年软件编程(Scratch)等级考试二级考试真题2023年12月——持续更新.....

青少年软件编程(图形化)等级考试试卷(二级) 分数:100 题数:37 一、单选题(共25题,共50分) 1.在制作推箱子游戏时,地图是用数字形式储存在电脑里的,下图是一个推箱子地图,地图表示如下: 第一行(111111) 第二行(132231) 第三行(126621) 第四行( ) 第五行(152…

数独——拥有一定难度的回溯练习题,值得一看

数独相信大家都玩过&#xff0c;也都拥有不同的策略&#xff0c;那么放到C中又是怎样的呢&#xff1f;其实它就是回溯算法。话不多说&#xff0c;直接用例题来讲解&#xff1a; Description 数独是根据99盘面上的已知数字&#xff0c;推理出所有剩余空格的数字&#xff0c;并…

3-zookeeper之ZAB协议

Zookeeper ZAB协议 概述 ZAB(Zookeeper Automic Broadcast)是一套专门为Zookeeper设计的用于进行原子广播和崩溃恢复的协议ZAB协议主要包含了两个功能 原子广播&#xff1a;保证数据一致性崩溃恢复&#xff1a;保证集群的高可用 ZAB协议本身是基于2PC算法来进行的设计&#…

【js刷题:数据结构数组篇之有序数组的平方】

有序数组的平方 一、题目二、解题方法1、暴力解法2、双指针思路代码 一、题目 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 二、解题方法 1、暴力解法 class Solution {sortedSquares(…

数据结构与算法 双链表有序排列运算与循环单链表基本运算

一、实验内容 1.有一个带头结点的双链表L&#xff08;至少有一个数据结点&#xff09;&#xff0c;设计一个算法使其元素递增有序排列。 2. 编写一个程序clinklist.cpp,实现循环单链表的各种基本运算和整体建表算法&#xff08;假设循环单链表的元素类型ElemType为char&#…

OSCP靶场--Zipper

OSCP靶场–Zipper 考点(php zip:// rce[文件上传] CVE-2021-4034提权7z 通配符提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.249.229 -sV -sC -Pn --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-29 07:40 EDT …

11-设计模式:Go常用设计模式概述

设计模式是啥呢&#xff1f;简单来说&#xff0c;就是将软件开发中需要重复性解决的编码场景&#xff0c;按最佳实践的方式抽象成一个模型&#xff0c;模型描述的解决方法就是设计模式。使用设计模式&#xff0c;可以使代码更易于理解&#xff0c;保证代码的重用性和可靠性。 …

RIP环境下的MGRE 综合实验

实验题目及要求&#xff1a; 1.R5为ISP&#xff0c;只能进行IP地址配置&#xff0c;其所有地址均配为公有IP地址 2.R1和R5间使用PPP的PAP认证&#xff0c;R5为主认证方; R2于R5之间使用PPP的chap认证&#xff0c;R5为主认证方&#xff1b; R3于R5之间使用HDLC封装。 3.R1/…

基于javaweb宠物领养平台管理系统设计和实现

基于javaweb宠物领养平台管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源码联…

媒体偏见从何而来?--- 美国MRC(媒体评级委员会)为何而生?

每天当我们打开淘宝&#xff0c;京东&#xff0c;步入超市&#xff0c;逛街或者逛展会&#xff0c;各种广告铺天盖地而来。从原来的平面广告&#xff0c;到多媒体广告&#xff0c;到今天融合AR和VR技术的数字广告&#xff0c;还有元宇宙虚拟世界&#xff0c;还有大模型加持的智…

SpringBoot使用Redis

1.Spring是如何集成Redis的&#xff1f; Spring Data Redis 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId&…

第十四届蓝桥杯JavaA组省赛真题 - 棋盘

解题思路&#xff1a; 暴力 棋盘类题目取反操作&#xff1a; f[a][b]^1; 或者f[a][b] 1 - f[a][b]; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);int n scan.nextInt();int m scan.nex…

MyEclipse10配置Tomcat7+Web项目发布

配置时&#xff0c;MyEclipse→Preference&#xff0c;在左边栏目中选择MyEclipse——Servers——Tomcat——Tomcat7.x&#xff0c;如下&#xff1a; 把Tomcat服务器设为可用&#xff0c;选择Tomcat的路径&#xff08;选择Tomcat路径的时候一定要选对&#xff0c;不要选Tomcat下…

STM32使用U盘进行固件更新

前面提过串口IAP升级可以方便的进行不拆机固件更新 STM32串口IAP-CSDN博客文章浏览阅读577次,点赞20次,收藏6次。那么有哪些便捷的升级方式呢,其实有很多,比较常见的比如手机软件更新,很典型的远程升级案例。前面说过“修改STM32链接脚本可以修改程序写入闪存的起始地址”…

位置_分布式处理和数据的MVA考虑——可持续架构(七)

前言 理解分布式进程和数据的影响&#xff0c;可以使团队尚在未具备处理分布式能力的时候&#xff0c;做出更好的MVA决策。云计算并不能消除分布式问题&#xff0c;反而它可能会使问题更难解决&#xff0c;因为它隐藏了底层基础设施。改变数据位置可能会对应用程序逻辑产生微妙…

基于单片机的温度控制器系统仿真设计

**单片机设计介绍&#xff0c;基于单片机的温度控制器系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的温度控制器系统仿真设计概要主要包括以下几个关键方面&#xff1a;硬件设计、软件设计、系统仿真与…

颜值测评打分微信小程序AI智能颜值测评小程序搭建流量主收益

功能简介&#xff1a; 1.该小程序是AI智能颜值测评 2.可配合流量主推广&#xff0c;广告变现 3.后台含有区间关键词&#xff0c;颜值分析管理可用于公众号吸粉 (保存海报上的二维码换成公众号二维码) 4.(美容院&#xff0c;整形机构活动&#xff0c;颜值评分X分以上可到店获…

安卓手机ip地址怎么切换?简单几步轻松实现

在移动互联网时代&#xff0c;安卓手机作为我们日常生活中不可或缺的一部分&#xff0c;扮演着越来越重要的角色。而在网络世界中&#xff0c;IP地址则是每个设备的标识&#xff0c;它决定了设备在网络中的位置与身份。然而&#xff0c;有时我们可能出于隐私保护、网络测试或其…

PTA L2-040 哲哲打游戏

哲哲是一位硬核游戏玩家。最近一款名叫《达诺达诺》的新游戏刚刚上市&#xff0c;哲哲自然要快速攻略游戏&#xff0c;守护硬核游戏玩家的一切&#xff01; 为简化模型&#xff0c;我们不妨假设游戏有 N 个剧情点&#xff0c;通过游戏里不同的操作或选择可以从某个剧情点去往另…