当前位置: 首页 > 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"); // 下载文件 文件名
}
  • 以上函数可以直接引用,修改对应的部分即可
    在这里插入图片描述
http://www.lryc.cn/news/209804.html

相关文章:

  • vue+Fullcalendar
  • Spring定时任务+webSocket实现定时给指定用户发送消息
  • C语言学习笔记(六):数组(1)
  • apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】
  • 【IO面试题 五】、 Serializable接口为什么需要定义serialVersionUID变量?
  • san.js源码解读之模版解析(parseTemplate)篇——readIdent函数
  • 【excel技巧】excel单元格内如何换行?
  • SSD1306 oled显示屏的驱动SPI接口
  • RSA:基于小加密指数的攻击方式与思维技巧
  • Vuex 和 Redux 的区别?
  • 软考高级系统架构师冲关预测
  • 华为实验基础(1):交换机基础
  • bitlocker 加密锁定的固态硬盘,更换到别的电脑上,怎么把原密钥写进新电脑TPM芯片内,开启无需手动填密钥
  • C语言之错误处理
  • IO流框架,缓冲流
  • 数字音频工作站软件 Ableton Live 11 mac中文软件特点与功能
  • 【PyQt】调整子控件的层级以调整绘制的先后顺序
  • js中数组的相关方法
  • 深入浅出排序算法之直接插入排序(拓展:折半插入排序)
  • 皮卡丘RCE靶场通关攻略
  • Mysql binlog日志功能使用,简单易懂
  • 计算机视觉-光源的目的和作用
  • 源码角度分析Java 循环中删除数据为什么会报异常
  • leetCode 229. 多数元素 II + 摩尔投票法 + 进阶 + 优化空间
  • 5 个编写高效 Makefile 文件的最佳实践
  • 20231028刷题记录
  • 39 深度学习(三):tensorflow.data模块的使用(基础,可跳)
  • css四种导入方式
  • Linux学习第24天:Linux 阻塞和非阻塞 IO 实验(一): 挂起
  • 037-第三代软件开发-系统音量设置