后端-实现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:提供监控和报警功能,收集和…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...
CSS | transition 和 transform的用处和区别
省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...