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

Vue3:将表格数据下载为excel文件

需求

将表格数据或者其他形式的数据下载为excel文件

技术栈

Vue3、ElementPlus、

实现

1、安装相关的库
  • 下载xlsx 和 file-saver 库
npm install -S file-saver
npm install -S xlsx
  • 引入XLSX库和FileSaver库
import XLSX from 'xlsx';
import FileSaver from 'file-saver';
2、添加导出按钮
  • 需要一个“导出”按钮,并给它绑定一个点击事件
    (1)点击该按钮可以将表格的数据下载为excel文件;
    (2)关于按钮的图标可以引用elementplus里的下载图标
  • 另外,可以添加触发提示,告知用户可以进行数据下载
    关于触发提示可以引用elementplus里面的el-tooltip组件
  • 大致效果如下:
    在这里插入图片描述
  • 导出按钮、触发提示、表格的包含关系如下:
    在这里插入图片描述
  • 相关代码:
<!-- 表格 -->
<div class="TopCourse"><div class="navTop"><!-- 触发提示 --><el-tooltipclass="box-item"effect="dark"content="下载全部数据"placement="top-start"><!-- 下载按钮 --><el-button type="primary" :icon="Download" @click="userExport" /></el-tooltip></div><!-- 表格 --><el-tableid="myTable":data="tableData"style="width: 95%":header-cell-style="{ 'text-align': 'center' }":cell-style="{ 'text-align': 'center' }"><el-table-column prop="index" label="No." /><el-table-column prop="ID" label="ID" /></el-table>
</div>
3、函数:将数据下载为excel文件
  • 使用 SheetJS 库将表格数据转换为 Excel 文件格式;
  • 使用 file-saver 库将生成的 Excel 文件保存到本地
// tableDataAllL:指excel数据的全部汇总(根据实际情况自己去补充)
var tableDataAll = [];
// 将数据下载为excel文件
function userExport() {const worksheet = XLSX.utils.json_to_sheet(tableDataAll);const workbook = XLSX.utils.book_new();XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1");const excelBuffer = XLSX.write(workbook, {bookType: "xlsx",type: "array",});const blob = new Blob([excelBuffer], {type: "application/vnd.ms-excel",});FileSaver.saveAs(blob, "tableDataAll"); // 下载文件 文件名
}
  • 以上函数可以直接引用,修改对应的部分即可
    在这里插入图片描述

相关文章:

Vue3:将表格数据下载为excel文件

需求 将表格数据或者其他形式的数据下载为excel文件 技术栈 Vue3、ElementPlus、 实现 1、安装相关的库 下载xlsx 和 file-saver 库 npm install -S file-saver npm install -S xlsx引入XLSX库和FileSaver库 import XLSX from xlsx; import FileSaver from file-saver;…...

vue+Fullcalendar

vueFullcalendar: vueFullcalendar项目代码https://gitee.com/Oyxgen404/vue--fullcalendar.git...

Spring定时任务+webSocket实现定时给指定用户发送消息

生命无罪&#xff0c;健康万岁&#xff0c;我是laity。 我曾七次鄙视自己的灵魂&#xff1a; 第一次&#xff0c;当它本可进取时&#xff0c;却故作谦卑&#xff1b; 第二次&#xff0c;当它在空虚时&#xff0c;用爱欲来填充&#xff1b; 第三次&#xff0c;在困难和容易之…...

C语言学习笔记(六):数组(1)

0,问题的引入 怎么保存一个学生的成绩 float a; 怎么保存一个班&#xff08;10人&#xff09;的学生的成绩 float a,b,c,d......; float a1,a2,a3,........; 这样太麻烦了 -》“数组” 1&#xff0c;数组 什么是数组&#xff…...

apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】

往期教程&#xff1a; apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】 这次实例演示下如何更换apk安装后的桌面图标图片。其实这个步骤前面我有一个教程贴。这次针对步骤做个补…...

【IO面试题 五】、 Serializable接口为什么需要定义serialVersionUID变量?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a; Serializable接口为什么…...

san.js源码解读之模版解析(parseTemplate)篇——readIdent函数

一、源码分析 /*** 读取ident* 这里的 ident 指标识符(identifier)&#xff0c;也就是通常意义上的变量名* 这里默认的变量名规则为&#xff1a;由美元符号($)、数字、字母或者下划线(_)构成的字符串** inner* param {Walker} walker 源码读取对象* return {string}*/ functio…...

【excel技巧】excel单元格内如何换行?

Excel表格&#xff0c;在制作完成之后&#xff0c;在输入数据的时候&#xff0c;总是会遇到内容长度太长导致无法全部显示或者破坏表格整体格式。几天分享4个单元格换行的方法给大家。 方法一&#xff1a; 首先我们先介绍一个&#xff0c;通过调整列宽的方式来达到显示全部内…...

SSD1306 oled显示屏的驱动SPI接口

有IIC接口 和SPI接口 还有8080,6080接口等 arduino SPI接口 直接使用u8g2库实现 //U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, /* clock*/ 13, /* data*/ 11, /* cs*/ 10, /* dc*/ 9, /* reset*/ 8); asrpro(SPI接口按下方修改&#xff0c;IIC接口官方有驱动&…...

RSA:基于小加密指数的攻击方式与思维技巧

目录 目录 目录 零、前言 一、小加密指数爆破 [FSCTF]RSA签到 思路&#xff1a; 二、基于小加密指数的有限域开根 [NCTF 2019]easyRSA 思路&#xff1a; 三、基于小加密指数的CRT [0CTF 2016] rsa 思路&#xff1a; 零、前言 最近&#xff0c;发现自己做题思路比较…...

Vuex 和 Redux 的区别?

Vuex和Redux是两个流行的JavaScript状态管理库&#xff0c;它们有一些相似之处&#xff0c;但也有一些区别。 区别&#xff1a; 语言&#xff1a;Vuex是为Vue.js框架设计的&#xff0c;而Redux是一个独立的库&#xff0c;可用于多种JavaScript框架或库。生态系统&#xff1a;…...

软考高级系统架构师冲关预测

[ – 2023年10月27日 – ] 去年11月通过了软考高级系统架构师的考试&#xff0c;原本想立即分享下过关的总结回顾&#xff0c;但是随着软考新版大纲及教程的发布&#xff0c;也意味着题目及内容的复盘总结经验便不那么适用。在即将迎来今年的软考高架的时候&#xff0c;想着透…...

华为实验基础(1):交换机基础

一、交换机的分类 1、 根据交换方式划分&#xff1a; 存储转发式交换 (Store and Forward) 直通式交换 (Cut-through) 碎片过滤式交换 (Fragment Free) 2、 根据交换的协议层划分&#xff1a; 第二层交换&#xff1a;根据 MAC 地址进行交换 第三层交换&…...

bitlocker 加密锁定的固态硬盘,更换到别的电脑上,怎么把原密钥写进新电脑TPM芯片内,开启无需手动填密钥

环境: Win11 专业版 联想E14笔记本 512G ssd 问题描述: 一台笔记本因充电故障,需要拿去维修,不想重装系统,将bitlocker 加密锁定的固态硬盘拆下更换到别的笔记本电脑上,现在开机要手动填密钥,怎么把原密钥写进新电脑TPM芯片内,开启无需手动填密钥和之前那台电脑一…...

C语言之错误处理

在C语言中&#xff0c;错误处理是一种重要的编程技术&#xff0c;用于处理程序运行过程中可能出现的错误情况。C语言提供了几种处理错误的机制&#xff0c;包括返回错误码、使用全局变量、异常处理等。 1、返回错误码&#xff1a; 在函数执行过程中&#xff0c;如果发生错误&a…...

IO流框架,缓冲流

一.缓冲流有什么优点 Java中的缓冲流&#xff08;Buffered Stream&#xff09;具有以下优势&#xff1a; 提高效率&#xff1a;缓冲流通过在内存中缓存一部分数据&#xff0c;减少了直接从内存到磁盘或从磁盘到内存的频繁IO操作&#xff0c;从而提高了读写效率。缓冲区大小调整…...

数字音频工作站软件 Ableton Live 11 mac中文软件特点与功能

Ableton Live 11 mac是一款数字音频工作站软件&#xff0c;用于音乐制作、录音、混音和现场演出。它由Ableton公司开发&#xff0c;是一款极其流行的音乐制作软件之一。 Ableton Live 11 mac软件特点和功能 Comping功能&#xff1a;Live 11增加了Comping功能&#xff0c;允许用…...

【PyQt】调整子控件的层级以调整绘制的先后顺序

简述 qt中貌似没有直接设置z序的函数&#xff0c;但对应的有其他调整z序的方法&#xff1a; QWidget.raise_()&#xff1a;置顶 QWidget.lower()&#xff1a;置底 QWidget.stackUnder(wid)&#xff1a;置于指定控件之下 其中关键函数是QWidget.stackUnder(wid)&#xff0c;利…...

js中数组的相关方法

引言&#xff1a; 数组&#xff08;Array&#xff09;是有序的元素序列。 [1]若将有限个类型相同的变量的集合命名&#xff0c;那么这个名称为数组名。组成数组的各个变量称为数组的分量&#xff0c;也称为数组的元素&#xff0c;有时也称为下标变量 方法&#xff1a; push()…...

深入浅出排序算法之直接插入排序(拓展:折半插入排序)

目录 1. 图示解析 2. 原理解析 3. 代码实现 4. 性能分析 5. 折半插入排序&#xff08;拓展&#xff09; 直接插入排序和选择排序的第一趟就是第一个关键字 &#xff01; 1. 图示解析 2. 原理解析 整个区间被分为&#xff1a;① 有序区间&#xff1b;② 无序区间 每次选…...

Android虚拟位置终极指南:如何为每个应用单独设置模拟位置

Android虚拟位置终极指南&#xff1a;如何为每个应用单独设置模拟位置 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 想要在社交软件中保护隐私&#xff0c;在游戏中获取区域限定…...

构建高可用在线机器学习推理系统:分层回退架构设计与金融风控实践

1. 项目概述与核心挑战在金融科技领域&#xff0c;尤其是在线支付和信贷审批场景&#xff0c;机器学习模型已经从后台的分析工具&#xff0c;演变为实时业务决策的核心引擎。想象一下&#xff0c;当用户点击“确认支付”的瞬间&#xff0c;一个复杂的风控模型必须在几百毫秒内&…...

机器学习优化离子光学:破解天体物理(p,n)反应测量难题

1. 项目概述&#xff1a;当机器学习遇上离子光学&#xff0c;破解天体物理反应测量难题在核天体物理这个探索宇宙元素起源的领域&#xff0c;我们常常面临一个尴尬的局面&#xff1a;理论模型告诉我们某些核反应过程至关重要&#xff0c;但实验上却束手无策。其中&#xff0c;低…...

如何快速解锁中兴光猫工厂模式:终极免费工具指南

如何快速解锁中兴光猫工厂模式&#xff1a;终极免费工具指南 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 你是否曾因中兴光猫的默认设置限制而无法优化家庭网络&#xff1f;是否想访…...

RPR方法:利用惯性主轴实现分子向量性质的快速准确预测

1. 项目概述&#xff1a;为什么分子向量预测是个“方向感”难题&#xff1f;在计算化学和材料模拟的日常工作中&#xff0c;我们常常需要预测分子的各种性质。其中&#xff0c;像能量这样的标量性质相对“好说话”——无论你把分子怎么转&#xff0c;它的总能量是不变的。所以&…...

EinDecomp:基于爱因斯坦求和与张量关系代数的自动张量并行分解算法

1. 项目概述&#xff1a;从张量计算的并行困境到EinDecomp的破局思路如果你深度参与过大规模机器学习模型的训练或高维科学计算&#xff0c;一定对“并行”这个词又爱又恨。爱的是&#xff0c;它几乎是处理海量数据和复杂模型的唯一出路&#xff1b;恨的是&#xff0c;为了实现…...

神经符号系统实践:耦合机器学习与本体论提升机器人自主诊断能力

1. 项目概述&#xff1a;当机器学习遇见本体论 在机器人圈子里摸爬滚打十几年&#xff0c;我见过太多“聪明”但“不可靠”的自主系统。它们能精准识别物体、规划路径&#xff0c;但一旦遇到训练数据之外的场景&#xff0c;或者传感器出现一点小毛病&#xff0c;行为就可能变得…...

量子机器学习在基因组分类中的实践:特征映射与模型选择指南

1. 项目概述&#xff1a;当量子计算遇上基因组学如果你和我一样&#xff0c;既对量子计算的神秘力量感到好奇&#xff0c;又长期在生物信息学的数据海洋里“游泳”&#xff0c;那么“量子机器学习”这个交叉领域绝对值得你投入时间。这听起来像是科幻小说的情节&#xff0c;但现…...

机器学习优化算法在激光等离子体加速实验中的应用与选型指南

1. 项目概述&#xff1a;当机器学习算法遇见激光等离子体加速在激光等离子体加速&#xff08;Laser Wakefield Acceleration, LWFA&#xff09;这类前沿物理实验中&#xff0c;我们常常面临一个经典难题&#xff1a;如何从一堆相互耦合、影响复杂的实验参数中&#xff0c;快速、…...

大模型从0训练LLaMA全流程实战——基于昇腾910B集群

用昇腾集群从零训练一个 LLaMA-7B,走完数据准备、代码修改、分布式配置、启动训练、监控调优的全流程。中间踩过的坑都标注在对应步骤里。 1. 硬件与环境确认(训练前必做) 训练大模型对环境的稳定性要求极高,任何一项不达标都可能导致训练中途崩溃。 #!/bin/bash # 训练前…...