后端-实现excel的导出功能(超详细讲解)
首先,不管是一大段文字还是一个几行几列的表格实现方式都是一样的。把动态的内容使用英文单词代替。动态的内容加不加下划线都可以,加了下划线最后生成的表格动态内容部分带有下划线,不加下划线最后生成的表格动态内容部分不带下划线。大家各取所需,为了本文档能够看的更清晰我加了下划线,
注意:表格的话赋值的顺序是1-->2-->3-->4,不是1-->4-->7-->10-->13-->16-->19-->22的顺序
1.首先现在word文档里面新建两种形式的素材,后缀为.doc和后缀为.docx的文档都可以。
文本形式:
随着 城市 消费市场的逐步回暖,尤其是在电子商务、车辆、旅游等行业的复苏,消费对经济的贡献不断增加。此外,中国政府通过一系列税收优惠、减负政策等措施,鼓励企业投资创新,提高 生产 效率。
表格形式:
| 单位 | 累计发案 | 本月发案 | 占比 | 环比 | 同比 |
| 江城 | / | 1 | 2 | 3 | / |
| 松江 | / | 4 | 5 | 6 | / |
| 金川 | / | 7 | 8 | 9 | / |
| 柳林 | / | 10 | 11 | 12 | / |
| 海滨 | / | 13 | 14 | 15 | / |
| 长安 | / | 16 | 17 | 18 | / |
| 翠谷 | / | 19 | 20 | 21 | / |
| 总计 | / | 22 | / | / | / |
2.然后把你的变量位置换成你想换成的英文单词
随着city消费市场的逐步回暖,尤其是在电子商务、car、旅游等行业的复苏,消费对经济的贡献不断增加。moreover,中国政府通过一系列税收优惠、减负政策等措施,鼓励企业投资创新,提高public效率。
| 单位 | 累计发案 | 本月发案 | 占比 | 环比 | 同比 |
| 江城 | / | serend | microfoft | jdk | / |
| 松江 | / | eclipse | excel | eclipse | / |
| 金川 | / | nebula | powerpo | intelli | / |
| 柳林 | / | quintes | googledo | netbeans | / |
| 海滨 | / | voyage | wpsoffice | maven | / |
| 长安 | / | echo | libreoffice | gradle | / |
| 翠谷 | / | labyrin | notion | grebel | / |
| 总计 | / | luminous | / | / | / |
3.保存的时候把.doc或者是.docx保存为.xml的格式

文件名随便起,最后点击保存。
4.然后你保存的位置就有了这个以.xml结尾的文件,然后我们打开这个文件进行编辑,我使用的是notepad3打开进行编辑的
注意:亲身体验,不要直接使用ctrl+H替换,而是要对照着文本和表格的顺序来一个一个找,因为有的单词会分开,我们查询不到,不是我们想要的一整个单词,我们要做的就是删除被分开的单词之间的内容,让他重新恢复成一个单词,直接删掉中间的多余内容就行了。还有一种使用ctrl+H的情况就是我们写的英文单词过于简单在这个.xml文件里面有很多个,所以一替换的话后期就会出错,总之,还是稳中求胜,一个一个的自己手动修改。

5.把我们找到的我们自己命名的单词使用${}包裹。我这里只展示了两个,然后点击保存。

6. 然后接下来的内容就是springboot项目
基础框架代码地址:https://gitee.com/colinWu_java/spring-boot-base.git
我会在此主干基础上开发
7.把你自己命名的.xml文件复制到项目中的template下,并重命名为以.ftl结尾的文件(这一步也可以在第5步进行保存的时候进行重命名)

8.然后找到我们的testcontroller层,点开,找到我们的downloadWord方法,重新复制一份,并把方法名换一下


9.重新启动项目
10.打开浏览器,访问接口:http://localhost:8001/downloadWord,端口号8001写你application中的配置端口,我这里是8001,然后再浏览器的下载位置会有一个下载文件。

11.至此,你已经成功了。
相关文章:
后端-实现excel的导出功能(超详细讲解)
首先,不管是一大段文字还是一个几行几列的表格实现方式都是一样的。把动态的内容使用英文单词代替。动态的内容加不加下划线都可以,加了下划线最后生成的表格动态内容部分带有下划线,不加下划线最后生成的表格动态内容部分不带下划线。大家各…...
Docker compose部署portainer
整个工具的代码都在Gitee或者Github地址内 gitee:solomon-parent: 这个项目主要是总结了工作上遇到的问题以及学习一些框架用于整合例如:rabbitMq、reids、Mqtt、S3协议的文件服务器、mongodb github:GitHub - ZeroNing/solomon-parent: 这个项目主要是…...
【游戏引擎之路】登神长阶(十四)——OpenGL教程:士别三日,当刮目相看
【游戏引擎之路】登神长阶(十四)——OpenGL教程:士别三日,当刮目相看 2024年 5月20日-6月4日:攻克2D物理引擎。 2024年 6月4日-6月13日:攻克《3D数学基础》。 2024年 6月13日-6月20日:攻克《3D…...
相等日期问题(c++方法解决)
问题描述 对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。请问从 1900 年 1 月 1 日至 9999 年 12 月 31 日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之…...
深度学习——优化算法、激活函数、归一化、正则化
文章目录 🌺深度学习面试八股汇总🌺优化算法方法梯度下降 (Gradient Descent, GD)动量法 (Momentum)AdaGrad (Adaptive Gradient Algorithm)RMSProp (Root Mean Square Propagation)Adam (Adaptive Moment Estimation)AdamW 优化算法总结 经验和实践建议…...
Android 老项目适配 Compose 混合开发
在Android项目中使用Jetpack Compose进行混合开发时,可以通过以下步骤进行适配: 1.更新项目的build.gradle文件,确保使用最新的Compose库版本。 dependencies { implementation androidx.compose.ui:ui:<latest_version> implementat…...
PH热榜 | 2024-11-14
DevNow 是一个精简的开源技术博客项目模版,支持 Vercel 一键部署,支持评论、搜索等功能,欢迎大家体验。 [在线预览](https://www.laughingzhu.c 1. Vocera 标语:利用模拟和监控加速语音代理上线 这句话的意思是:通过…...
删库跑路,启动!
起因:这是一个悲伤的故事,在抓logcat时 device待机自动回根目录了,而题主对当前路径的印象还停留在文件夹下,不小心在根目录执行了rm -rf * … 所以,这是个悲伤的故事,东西全没了…device也黑屏了ÿ…...
Vue 3 在现代前端开发中的应用
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Vue 3 在现代前端开发中的应用 Vue 3 在现代前端开发中的应用 Vue 3 在现代前端开发中的应用 引言 Vue 3 概述 定义与原理 发展历…...
【HarmonyOS】Hdc server port XXXX has been used.Configure environment variable
【HarmonyOS】Hdc server port XXXX has been used.Configure environment variable 一、 问题背景: 无法调试debug应用,IDE右下角显示该弹窗: Hdc server port XXXX has been used.Configure environment variable ‘OHOS_HDC_SERVER_POR…...
使用 ts-node 运行 ts文件,启动 nodejs项目
最近在写一个nodejs项目,使用 ts-node 启动项目。遇到了一些问题,在此记录一下。 ts-node 是 TypeScript 执行引擎和 Node.js 的 REPL(一个简单的交互式的编程环境)。 它能够直接在 Node.js 上执行 TypeScript,而无需预编译。 这是通过挂接…...
scala中的case class
package test_27 //Set的特点:唯一(元素不同);无序 //case class定义一组数据 case class Book(var bookName:String,var author:String,var price:Double){} object caseclass {def main(args: Array[String]): Unit {//定义一个…...
探索 HTTP 请求方法:GET、POST、PUT、DELETE 等的用法详解
文章目录 前言一、GET 方法:用于获取资源二、POST 方法:用于提交数据三、PUT 方法:用于更新资源四、DELETE 方法:用于删除资源五、PATCH 方法:用于部分更新资源六、HEAD 方法:用于请求响应头七、OPTIONS 方…...
前端项目中,public文件下的system.js有什么作用
SystemJS在前端项目中的作用主要包括模块加载、资源管理和兼容性处理。 模块加载 SystemJS是一个通用的模块加载器,支持多种模块规范,包括CommonJS、AMD、全局模块对象和ES6模块。通过使用插件,它还可以加载CoffeeScript和TypeScript。…...
odoo-040 odoo17前端的js方法调用后端py方法action报错
文章目录 问题描述梳理写法xml写法前端方法后端action的写法 错误解释 问题描述 在前端的kanban视图上添加了几个自定义按钮,按钮点击可以跳转到对应的tree视图,在写按钮调用方法的时候报错如下: 前端调用后端action报错: actio…...
图形 2.7 LDR与HDR
LDR与HDR B站视频:图形 2.7 LDR与HDR 文章目录 LDR与HDR基本概念LDRHDR为什么需要HDR不同显示屏的差异 Unity中的HDRCamera HDR 设置Lightmap HDR设置拾色器 HDR设置优缺点 HDR与Bloom通常Bloom渲染步骤渲染出原图获取图像中较亮部分高斯模糊叠加 Unity中Bloom渲染…...
DP动态规划基础题(Kadane算法)
动态规划(Dynamic Programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学等领域中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划算法通常用于优化问题,特别是那…...
[UnLua]动态创建SceneCapture2d相机,并且添加渲染目标纹理
在 Unlua 开发中,相机相关的操作是构建场景视觉效果的重要部分。以下我们来详细分析一段涉及相机实例化和为相机赋予纹理目标的 Unlua 代码。 -- 实例化相机local World self:GetWorld()maskCamera World:SpawnActor(UE.ASceneCapture2D)-- 给相机赋值纹理目标lo…...
【leetcode练习·二叉树】用「分解问题」思维解题 I
本文参考labuladong算法笔记[【强化练习】用「分解问题」思维解题 I | labuladong 的算法笔记] 105. 从前序与中序遍历序列构造二叉树 | 力扣 | LeetCode | 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵…...
【gitlab-ce】各组件介绍
主要组件功能接介绍(chatgpt回答的) nginx:作为Web服务器和反向代理,用于访问GitLab的Web界面。可以关闭,但会导致无法通过Web界面访问GitLab。prometheus_monitoring:提供监控和报警功能,收集和…...
2025-2026年护眼灯品牌推荐:十大排行产品专业评测熬夜加班防眼干疲劳性价比高注意事项
摘要 当家庭与办公场景对光环境的要求从“照亮”升级为“护眼”,决策者面临的核心挑战已转变为如何在纷繁的技术参数与品牌承诺中,识别出真正能长期守护视觉健康、并适配多元场景的专业解决方案。根据全球市场研究机构Grand View Research的报告…...
仪式感,从来与你无关
2.2万人点赞的扎心评论:仪式感,从来都与你无关 有2.2万个男生偷偷点了赞。 没有歇斯底里的控诉,没有长篇大论的抱怨,只有一句轻飘飘的陈述,和一句"兄弟,没绷住"。 但就是这两句话,像一根针,精准地扎破了无数男生藏在心里最深处的、不敢说出口的委屈。 01…...
适配多层级组织管理,科学运用 360 度反馈打造公平高效绩效文化
360度绩效反馈评估是一种从上级、下属、同事、客户等多个维度收集反馈的综合绩效评估方法,通过多源数据消除单一评价者的主观偏差,帮助企业获得更全面、客观的员工能力画像。相比传统的上级单向评价,360度反馈能将评估准确度提升40%以上&…...
容器编排:Kubernetes高级调度策略
容器编排:Kubernetes高级调度策略 大家好,我是欧阳瑞(Rich Own)。今天想和大家聊聊Kubernetes高级调度策略这个重要话题。作为一个全栈开发者,Kubernetes已经成为容器编排的标准。今天就来分享一下Kubernetes的高级调…...
中科院空天院团队Geography and Sustainability:1985年至2022年各国人均耕地面积差距的扩大:对实现可持续发展目标的威胁
耕地作为粮食的载体,是保障粮食安全的关键要素。全球人口增长不可避免地导致耕地扩张以满足对食物、纤维和能源日益增长的需求,这给耕地的承载能力带来沉重负担,并加速了土壤退化与流失,对实现联合国可持续发展目标2(S…...
Unity军事资源包的战术语义架构与实战集成指南
1. 这个资源包不是“拿来就能用”的万能钥匙,而是需要你亲手校准的战术装备“POLYGON Military”——光看名字,很多人第一反应是:Unity Asset Store上那个标着“POLYGON”风格、封面全是迷彩涂装M4和悍马车的军事资源包。它确实存在ÿ…...
SurfaceFlinger 调用 libdrm 的详细代码流程分析
1. 整体架构图 ┌─────────────────────────────────────────────────────────────────┐ │ 应用层框架 │ │ ┌──────────────…...
py之代码实现获取字符串中每个字符的unicode值
def print_unicode_values(strings_list):"""接收字符串列表,提取所有字符的Unicode码点并以0x格式升序打印,后面加上对应字符"""unicode_values = set() # 使用集合自动去重for text in strings_list:for char in text...
2026年SSL证书市场便宜且安全的SSL证书调研
随着互联网安全标准的不断升级,HTTPS加密已成为网站和各类数字应用的“标配”。然而,对于广大的中小企业、个人开发者以及初创团队而言,如何在控制成本的前提下,获取一张既便宜又足够安全的SSL证书,始终是一道棘手的难…...
SABIC塑料与宏裕塑胶的卓越合作:高性能材料的行业应用
导读:在制造业转型升级的关键时期,高性能工程塑料的应用正成为企业提升产品竞争力的核心要素。SABIC塑料与宏裕塑胶的卓越合作,为行业提供了从原料选型到技术落地的完整解决方案,这种强强联合的模式正在重新定义高端材料供应体系。…...
