基于 element-ui 表格组件 el-table 导出表格数据

方法一:前端处理,直接导出 e-table 组件的表格数据

import XLSX from 'xlsx';/*** el-table 表格导出* @param {*} idSelector id选择器* @param {*} name 导出表格名称* @param {*} remove 表格是否存在左/右固定列,存在则传入true,反之false* @param {*} bookType 表格文件后缀* @returns */
export const _exportExcel = (idSelector, name, remove = false, bookType = 'xlsx') => {/* generate workbook object from table */var xlsxParam = { raw: true } // 导出的内容只做解析,不进行格式转换var table = document.querySelector(idSelector).cloneNode(true);// 如果有设置固定列,需要移除对应元素,否则会同时生成多张列表if (remove) {try {table.removeChild(table.querySelector('.el-table__fixed-left'));table.removeChild(table.querySelector('.el-table__fixed-right')); //这里是双下划线} catch(err) {}}var wb = XLSX.utils.table_to_book(table, xlsxParam);/* get binary string as output */// 写入数据var wbout = XLSX.write(wb, { bookType, bookSST: true, type: 'array' });// 下载生成excel--参照方法二downloadXls(wbout, `${name}.${bookType}`);return wbout
}

方法二:请求后端接口,返回blob文件流

/** * 注:若接口请求头有带文件名称返回,* 且服务端在header设置Access-Control-Expose-Headers: Content-Disposition,* 则前端无需自定义生成的文件名* const contentDisposition = res.headers['content-disposition'] // res 接口请求response数据* fileName: contentDisposition ? decodeURIComponent(contentDisposition.split('filename=')[1]) : '',*//*** 下载excel* @param {blob} fileArrayBuffer 文件流* @param {String} filename 文件名称*/
export const downloadXls = (fileArrayBuffer, filename) => {let data = new Blob([fileArrayBuffer], { type: 'application/vnd.ms-excel,charset=utf-8' });if (typeof window.chrome !== 'undefined') {// Chromevar link = document.createElement('a');link.href = window.URL.createObjectURL(data);link.download = filename;link.click();} else if (typeof window.navigator.msSaveBlob !== 'undefined') {// IEvar blob = new Blob([data], { type: 'application/force-download' });window.navigator.msSaveBlob(blob, filename);} else {// Firefoxvar file = new File([data], filename, { type: 'application/force-download' });window.open(URL.createObjectURL(file));}
};

拓展:

js 实现纯前端将数据导出excel两种方式

前端配合后端接口导出excel表格

前端导出excel表格打不开的情况

vue axios下载excel时获取不到返回的消息头Content-Disposition

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在MyBatis中,如何将数据库中的字符串类型映射为枚举类型?

在MyBatis中,如何将数据库中的字符串类型映射为枚举类型? 网上看了很多教程。说了很多,但是都没说到重点! 很简单,xml文件中, 使用resultType,而不是使用resultMap就可以了。 resultType"…

用HAL库改写江科大的stm32入门例子8-1 DMA数据转运

实验1-实验目的:通过DMA把buffer的数据搬运到buffer2当中。 //declare a buffer to store the data uint32_t buffer[3] {1,2,3};//declare a buffer to store the data uint32_t buffer2[3] {0,0,0}; DMA:是个搬运数据的小助手。 相关设置&#xff1…

Baidu Comate:释放编码潜能,革新软件开发

Baidu Comate Baidu Comate,智能代码助手,凭借着文心大模型的强大支撑,结合了百度多年的编程实战数据和丰富的开源资源,形成了一款崭新的编码辅助利器。它不仅具备着高智能、多场景、价值创造的特质,更可广泛应用于各…

实物仿真平台设计方案:927-8路GMSL视频注入回灌的自动驾驶半实物仿真平台

8路GMSL视频注入回灌的自动驾驶半实物仿真平台 一、平台介绍 产品基于8路GMSL视频注入回灌的自动驾驶半实物仿真平台旨在提高实验室及研究生院师生在基础软件层开发、计算机视觉和深度学习方面的专业知识学习和实践能力,为师生提供一个稳定软件开发和多精度框…

汇编个位数求和实验

title: 汇编求和实验 keywords: 汇编 tags: [汇编] categories: 嵌入式 汇编求和实验 刚开始学习汇编 给大家做个参考 实验 5 子程序 5.1 实验目的 ①掌握利用堆栈传递参数的子程序调用方法。 ②过程调用伪指令:PROC,ENDP,NEAR和FAR。 ③8088…

神经网络权重初始化学习

在神经网络中,权重初始化是一个关键步骤,它影响着模型的训练效率和最终性能。使用正态分布作为初始值是一种常见且有效的策略,尤其是在深度学习中。 原理 为何使用分布初始化? 如果所有权重初始化为相同的值(如全零初…

hive日常使用时忘记部分补充(不定时)

1、date_formate、unix_timestamp、from_unixtime用法: 2、lag()、lead()用法: lag()窗口函数返回分区中当前行之前行(可以指定第几行)的值。 如果没有行,则返回null。 lead()窗口…

pytest + yaml 框架 - 录制接口转 yaml 用例实现

pytest yaml 框架基本不用写 python 代码,只需写yaml 文件用例就能实现接口自动化。 现在引入接口录制功能,连 yaml 文件也不用写了,点点点就能生成 yaml 用例文件了。 录制功能在v1.3.4版本上实现 pip instal pytest-yaml-yoyo 环境准备 …

如何使用 ArcGIS Pro 制作地震动画

在做某些汇报的时候,除了图文,如果有动画肯定会成为加分项,这里为大家介绍一下如何使用 ArcGIS Pro 制作地震动画,希望能对你有所帮助。 添加时间 在图层属性内,选择时间选项卡,图层时间选择每个要素具有…

镓未来助力联想笔记本GaN适配器标配化,赋能高效用户体验

镓未来赋能笔记本电脑GaN适配器标配化 据悉,Lenovo 2024年推出搭配的多款新型笔记本原装适配器电源ADL100UDGC3A,采用了镓未来集成型Cascode技术氮化镓功率器件G1N65R150PB。新款方案相较上一代工艺,体积减小23%,重量降低18%&…

秋招算法刷题10(栈和队列)

0509 232.用栈实现队列 class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;public MyQueue() {inStack new ArrayDeque<Integer>();outStack new ArrayDeque<Integer>();}public void push(int x) {inStack.push(x);}public int pop…

13.跳跃游戏

文章目录 题目简介题目解答解法一&#xff1a;贪心算法&#xff0b;动态规划代码&#xff1a;复杂度分析&#xff1a; 题目链接 大家好&#xff0c;我是晓星航。今天为大家带来的是 跳跃游戏面试题 相关的讲解&#xff01;&#x1f600; 题目简介 题目解答 思路&#xff1a;这…

Vue3知识总结-2

目录 通过key来管理状态 事件处理 内联事件处理器 方法事件处理器 事件传参 获取event 传递参数 传参的过程中获取事件对象 事件修饰符 阻止事件描述符 阻止事件冒泡 数组变化侦测 变更方式 替换一个数组 计算属性 Class绑定 绑定对象 绑定数组 Style绑定 …

【Python 常用脚本及命令系列 3.3 -- Python 统计程序执行时间】

请阅读【嵌入式开发学习必备专栏】 文章目录 Python 统计程序执行时间 Python 统计程序执行时间 在Python中&#xff0c;可以使用time模块来测量执行一个函数所需的时间。以下是一个基本的例子&#xff0c;展示了如何实现这一功能&#xff1a; import time def your_function…

element-plus 工作经验总结

Element-plus 文章目录 Element-plus忠告: 最好锁定版本, 免得更新更出 BUG 来了el-drawer 设置 modal"false" 后, 遮罩元素仍存在, 点不了空白的地方el-tree 大数据量时接收 check-change 事件报错导致涉及多个节点的操作没执行完毕el-table 表头 show-overflow-too…

前端小程序调用 getLocation 实现地图位置功能,通过 纬度:latitude 经度: longitude 获取当前位置

1、首先登录一下 腾讯的位置服务 有账号就登录没账号就注册&#xff0c; 点击右上角的控制台点击左侧的应用管理 ---> 我的应用 ---->> 创建应用 1、创建应用 2、列表就会显示我们刚刚创建好的 key 3、点击添加 key 4、按照要求填写信息 我们用的是小程序 所以选择…

二叉树介绍

引入 定义 区别 定义不同 形态不同 基本形态

AD域服务器巡检指南

Active Directory (AD) 域服务器的巡检对于确保企业网络的安全性和高效运行至关重要。以下是针对AD域服务器巡检的关键活动和其重要性的优化描述&#xff1a; 保证系统安全&#xff1a; AD域服务器储存大量敏感数据&#xff0c;包括用户账户信息、策略和访问权限数据。定期巡检…

windows和 Linux 下通过 QProcess 打开ssh 和vnc

文章目录 SSHSSH验证启动SSH一、口令登录二、公钥登录通过Qprocess 启动ssh VNC Viewer简介通过QProcess启动vncViewer SSH Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的**安全网络协议**。它是专为远程登录会话(**甚至可以…

uniapp下拉选择组件

uniapp下拉选择组件 背景实现思路代码实现配置项使用尾巴 背景 最近遇到一个这样的需求&#xff0c;在输入框中输入关键字&#xff0c;通过接口查询到结果之后&#xff0c;以下拉框列表形式展现供用户选择。查询了下uni-app官网和项目中使用的uv-ui库&#xff0c;没找到符合条…