首页 > 其他分享 >ruoyi框架自定义导出的Excel文件名

ruoyi框架自定义导出的Excel文件名

时间:2023-04-21 20:33:49浏览次数:42  
标签:xlsx 函数 自定义 文件名 导出 Excel ruoyi sheetName

 

 https://www.cnblogs.com/an-drew/p/ruoyi-custom-excel.html#!comments

这是ruoyi界面的导出按钮,点击导出后

 

默认导出的Excel文件名是:  Unix时间戳 + Controller传入的sheetName + .xlsx

(对应下图中的文件名:1602402277993 + info + .xlsx)

 

 

但是我想要的自定义Excel文件名是:  表名_日期_时间.xlsx

(对应下图中的文件名:注册用户_2020-10-11_15-50-55.xlsx)

 

 

下面看点击导出按钮后的调用过程

 

1、首先,点击导出按钮调用 $.table.exportExcel()函数

 

 

2、调用ruoyi-admin组件下src/main/resources/static/ruoyi/js/ry-ui.js的 exportExcel()函数

这个函数的功能是提交POST请求到对应的table.options.exportUrl,exportUrl由导出页 JS 中的option变量进行指定。

请求成功后,window.location.href跳转到对应的下载链接

 

 

3、POST请求由对应Controller的export()函数处理

先查出所有数据放入list,再new一个ExcelUtil工具类

最后return 调用ExcelUtil工具类的exportExcel()函数,第一个参数是查出的list,第二个参数是自定义的Excel表名sheetName

修改1:将sheetName参数修改为你想导出的表名,比如改为"注册用户"

 

 

 

4、查看ruoyi-common组件下src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java工具类的exportExcel()函数

先用传入的两个参数执行init()函数初始化,然后执行没有参数的exportExcel()函数(重载函数之间的调用)

 

 

 

 

5、跳转到无参exportExcel()函数

 

中间省略,只看修改文件名的地方

参数sheetName传入encodingFilename()函数

 

 

6、跳转到encodingFilename()函数

下面被注释的那行filename就是原本的编码文件名:UUID_传入的sheetName + .xlsx

修改2:增加红框那三行,用DateTimeFormatter自定义日期时间格式,将文件名编码为:传入的sheetName_日期_时间.xlsx

 

 

 

7、文件名编码完成,window.location.href跳转到对应链接 ctx + "common/download?fileName=" + encodeURI(result.msg) + "&delete=" + true;

 

 

8、由ruoyi-admin组件下 src/main/java/com/ruoyi/web/controller/common/CommonController.java 来处理下载请求

修改3:因为编码后的文件名已经变成我想要的,所以直接赋值给realfilename

下面被注释掉的那行是原本获取真实文件名的方式,因为原本的编码文件名是:UUID_传入的sheetName + .xlsx,用substring取子串去掉UUID得到:传入的sheetName + .xlsx,再用System.currentTimeMillis()函数获取Unix时间戳与之拼接为:Unix时间戳 + 传入的sheetName + .xlsx,也就是文章开头的默认下载文件名

 

 

 

9、下载Excel,已变成自定义文件名:  表名_日期_时间.xlsx

 

#1楼 2023-01-17 21:19 CoderV的进阶笔记


SheetName的名称 完全可以通过注解的形式来实现
我实现在这个仓库,可供参考
https://github.com/valarchie/AgileBoot-Back-End

 

标签:xlsx,函数,自定义,文件名,导出,Excel,ruoyi,sheetName
From: https://www.cnblogs.com/chuangsi/p/17341702.html

相关文章

  • 2.自定义@Excel注解实现数据Excel形式导入导出
    https://zzpc.net/content/206150.html前言这几天在学习如何使用自定义注解实现Excel格式数据导入导出,参考的还是若依框架里面的代码,由于是初学,所以照猫画虎呗,但是难受的是需要复制并根据自己项目修改作者自定义的工具类以及导入这些工具类的依赖包。由于吃了这个苦,我决定把......
  • ruoyi-OSS阿里云
    ruoyi-OSS阿里云 ruoyi-OSS阿里云 1.先去阿里云开通OSS  https://blog.csdn.net/m0_55155505/article/details/1236880222.导入依赖,ruoyi默认配置<!--阿里云sms短信服务--><dependency><groupId>com.aliyun</groupId><ar......
  • ruoyi导入导出Excel
    https://www.cnblogs.com/SjhCode/p/excel.htmlruoyi导入导出Excel导入导出excel:使用若依自带的工具ExcelUtil;(例子:SysUserController)导入之前需要生成一个excel模板给用户填写(前端通过接口获取模板名字,再调用下载接口common/download,进行下载);导入业务根据若依的SysUserService......
  • ruoyi+EasyCode的快速开发
    https://www.cnblogs.com/SjhCode/p/EasyCode.html1.导入ruoyi模板项目若依官网:http://doc.ruoyi.vip/ruoyi/例子:https://baijiahao.baidu.com/s?id=1716723778024031543&wfr=spider&for=pc代码:gitclonehttps://gitee.com/y_project/RuoYi.git初学ruoyi可以看这位博主的视......
  • ruoyi整合ActiveMQ-Stomp
    https://www.cnblogs.com/SjhCode/p/ruoyiActiveMQ.htmlActiveMQ在若依中的配置,这里使用的传输协议是stomp协议消费时第一时间要确定对方打开了端口,是可以连接的状态。(cmd命令行测试telnet,ping)ActiveMQ消费消息consumeMsg:在处理业务时,需要判断JSON里面每一条数据有没有存......
  • ruoyi整合mqtt
    https://www.cnblogs.com/SjhCode/p/mqtt.htmlruoyi整合mqttmqtt报错客户机未连接32104,可能是没连接上,也可能是两个客户端clientID相同,也可能是同一台机子subscribe(Topic,Qos)订阅了多次在消费时,需要对方的通道有发送测试信息,我们才能取出来消费,消费完出队。 本地测试:https......
  • ruoyi整合WebSocket
    https://www.cnblogs.com/SjhCode/p/WebSocket.html ruoyi整合WebSocket这里使用WebSocket目的:向前端推送实时消息,配合ActiveMQ接入三方使用的导入maven依赖 <!--WebSocket--><dependency><groupId>org.java-websocket</groupId><......
  • Spring Boot中 自定义注解
    SpringBoot中自定义注解定义一个注解创建一个Java注解,可以使用@interface关键字来定义,例如:less@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public@interfaceMyAnnotation{Stringvalue()default"";}这个注解称为MyAnnotation,并且它具......
  • 若依RuoYi框架浅析 基础篇①——日志logs本地保存
    文章目录日志保存位置在/home/ruoyi/logs/[root@iZ2ze30dygwd6yh7gu6lskZlogs]#cd/home/ruoyi/logs/[root@iZ2ze30dygwd6yh7gu6lskZlogs]#lssys-error.2021-02-28.logsys-error.logsys-info.2021-02-28.logsys-info.2021-03-01.logsys-info.logsys-user.2021-0......
  • 【四二学堂】基于UiBot RPA开发入门---Excel操作
    dimobjExcelWorkBook=""dimiRowsobjExcelWorkBook=Excel.OpenExcel(@res"测试数据一.xlsx",true,"Excel","","")iRows=Excel.GetRowsCount(objExcelWorkBook,"Sheet1")Excel.WriteRow(objExcelWorkBook,&......