1. 首先安装

npm install xlsx --save//如果报错请下载最新版本
//比如
npm install xlsx@0.14.5 --save
或者更高

2. 在组件中引用 xlsx

import XLSX from 'xlsx';

3.提供导出按钮,编写导出方法

<el-button type="success" size="mini" @click="btnClickExport">导出</el-button>

4.js部分

            //导出按钮btnClickExport() {let obj = new Object();obj["ProjectNo"] = this.projectNo;obj["ProjectName"] = this.projectName;obj["EasNo"] = this.easNo;obj["EasName"] = this.easName;obj["CashflowRemark"] = this.cashflowRemark;this.reportsDataTitle.push(obj);// this.reportsDataTitle =[] 数据格式在下面var Title = this.reportsDataTitle; var Cash = this.reportsDataCash;//表格var CashFlow = this.reportsDataFlow;//表格var sheet1 = XLSX.utils.json_to_sheet(Title);var sheet2 = XLSX.utils.json_to_sheet(Cash);var sheet3 = XLSX.utils.json_to_sheet(CashFlow);var wb = XLSX.utils.book_new();XLSX.utils.book_append_sheet(wb, sheet1, "Title");XLSX.utils.book_append_sheet(wb, sheet2, "Cash");XLSX.utils.book_append_sheet(wb, sheet3, "Cashflow");const workbookBlob = this.workbook2blob(wb);//获取当前时间var date = new Date();var year = date.getFullYear();var month = date.getMonth() + 1;var day = date.getDate();if (month < 10) {month = "0" + month;}if (day < 10) {day = "0" + day;}var hours = date.getHours();var minute = date.getMinutes();var second = date.getSeconds();var nowDate = year.toString() + month.toString() + day.toString() + hours.toString() + minute.toString() + second.toString();this.openDownloadDialog(workbookBlob, 'Cashflow报告_' + nowDate + '.xlsx');},workbook2blob(workbook) {// 生成excel的配置项var wopts = {// 要生成的文件类型bookType: "xlsx",// // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性bookSST: false,type: "binary"};var wbout = XLSX.write(workbook, wopts);// 将字符串转ArrayBufferfunction s2ab(s) {var buf = new ArrayBuffer(s.length);var view = new Uint8Array(buf);for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;return buf;}var blob = new Blob([s2ab(wbout)], {type: "application/octet-stream"});return blob;},openDownloadDialog(blob, fileName) {if (typeof blob == "object" && blob instanceof Blob) {blob = URL.createObjectURL(blob); // 创建blob地址}var aLink = document.createElement("a");aLink.href = blob;// HTML5新增的属性,指定保存文件名,可以不要后缀,注意,有时候 file///模式下不会生效aLink.download = fileName || "";var event;if (window.MouseEvent) event = new MouseEvent("click");//   移动端else {event = document.createEvent("MouseEvents");event.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);}aLink.dispatchEvent(event);},

注:要导出数据的 json 格式应该是这样的(每个对象代表表格中的一行数据)

reportsDataTitle:[{ProjectNo: '21-10093',ProjectName: '',EasNo: '2021052',EasName: '算单',CashflowRemark: ''
}, {// ...
}]

this.reportsDataTitle 导出效果

导出多个sheet页效果

js表格导出excel,含多个sheet相关推荐

  1. js网页导出excel表格文件

    下载地址 js网页导出excel表格文件,没有使用任何第三方js类库,简单的实现table数据导出效果. dd:

  2. js table表格导出Excel 设置文件名称

    一.table表格导出 <!DOCTYPE html> <html> <head lang="en"> <meta charset=&qu ...

  3. js前端导出excel:json形式的导出

    第一中形式的导出:主要是表头对应主体数据,json形式的导出 js库文件名称 : table2excel.js这个js库文件是网上找的,并且自己根据自己业务需求把内容改了一下复制到 table2exc ...

  4. jQuery表格导出Excel文件以及网页内容导出Word文档

    前言: 我在这里给大家介绍一下我们能用代码实现的最简单的两种转换为Excel文件以及Word文档的方法. jQuery表格导出Excel文件 先来看看我们的层级划分: 如图所示: demo.css 代 ...

  5. 前端复杂表格导出excel,一键导出 Antd Table 看这篇就够了(附源码)

    前端导出 excel 的需求很多,但市面上好用的库并不多,讲明白复杂使用场景的文章更少. 本文将以文字 + demo 源码的形式,力求讲清楚满足 99% 使用场景的终极 excel 导出方案. 如果项 ...

  6. electron中表格导出excel使用XLSX.writeFile 更改写入位置方法

    问题 Vue项目集成为exe程序 使用electron,但是在web端可以使用的XLSX.writeFile会调用网页端保存文件API选择保存位置 在electron环境下生成的文件自动保存在工作目录 ...

  7. jQuery实现表格导出Excel功能

    jQuery实现表格导出Excel功能 jquery实现表格导出Excel功能,这里我们用到jquery的一个小插件:jquery-table2excel jquery-table2excel线上引用 ...

  8. 前端提效 - js 批量导出 excel 为zip压缩包

    本篇文章主要介绍使用 exceljs.file-saver.jszip实现下载包含多层级文件夹.多个 excel.每个 excel 支持多个 sheet 的 zip 压缩包. 上一篇文章:前端复杂表格 ...

  9. html表格导出excel有几种方式

    html表格导出excel有几种方式 一. 前后端结合 利用 JavaScript 将表格内容转换为 Excel 文件格式,然后通过 Ajax 请求将文件数据发送给后台,再由后台返回该文件数据流,前端 ...

最新文章

  1. 对大龄程序员的五大误解
  2. 申工智能有没有作弊?
  3. python3 sys.stdout.write 实时打印刷新
  4. 使用级联功能实现蓝绿部署和金丝雀发布
  5. QML工作笔记-为TestField戴上皮肤
  6. 立冬节气主题海报你知道怎么做了么?灵感给你,学起来!
  7. ARouter 源码历险记 (二)
  8. 五分钟看懂快速幂算法
  9. 电脑浏览器安全获取京东cookie
  10. linux中mbr最大多少分区,Linux学习—MBR和GPT
  11. 顾客价值理论(转载)
  12. UPC Haywire(模拟退火 || 随机数法)
  13. 算法笔记 简单贪心(月饼问题)
  14. 你真的知道如何选择内存条吗?
  15. 支付宝:批量付款到支付宝账户有密接口
  16. php技术面试成功后试岗,6.3公里“阅读静安”光音栈桥“会唱歌”
  17. CityMaker研修之路 02 伟景行(CityMaker)的倾斜之路
  18. HTTP状态码code类型
  19. 电视盒子安装CUPS共享惠普1020为无线网络打印机【新版】
  20. 新生宝宝起名禁忌 怎么样给小孩取名字指南

热门文章

  1. 积分器运放有限增益和失调影响推导
  2. 将谷歌浏览器移动到其他盘的方法
  3. 阿里云服务器处理挖矿程序过程
  4. 戴森创“新”公开课再度开讲,持续助力打造洁净居家环境 以升级科技守护家庭健康
  5. 记录每日待办事项的APP软件
  6. SLAM之小觅相机跑开源方案(ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map)
  7. PowerEdge R430 机架式服务器安装( Ubuntu server 14.04.1 、PHP5.5.9、PHP-redis2.8、Phalcon3.1) 未解决问题:换成静态路由的话,怎么就
  8. fritzing导入元件_【工具】【电子设计】超屌的 fritzing 新建元件
  9. python——自学入门
  10. git 设置 socks5 代理