将表格数据导出为excel

FileSaver.js: 是一款基于 HTML5 完成文件保存的插件,它可以帮我们直接从网页中导出多种格式文件。 同时对于那些本身不支持 HTML5 W3C saveAs() FileSaver 接口的浏览器,FileSaver.js 也提供了支持。 使用 FileSaver.js 可以让 Web 应用完美的生成文件,或者保存那些不应该发送到外部服务器的敏感信息。是一种简单易用的浏览器端文件保存方案。 

js-xlsx :由SheetJS出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls、xlsx、ods(一种OpenOffice专有表格文件格式)等十几种格式。

Json2excel:根据json数据生成excel表格

在需要导出excel的组件中引入这三个文件

import FileSaver from "file-saver";
import XLSX from "xlsx";

import Json2excel from "custom-json2excel";
exportExcel() {
      var wopts = {
        bookType: "xlsx",
        bookSST: false,
        type: "binary"
      };
      var workBook = {
        SheetNames: ["Sheet1"],
        Sheets: {},
        Props: {}
      };
      workBook.Sheets["Sheet1"] = XLSX.utils.json_to_sheet(
        this.presentTableData
      );

      FileSaver.saveAs(
        new Blob([this.changeData(XLSX.write(workBook, wopts))], {
          type: "application/octet-stream"
        }),
        "站点列表.xlsx"
      );

      var tableData = this.presentTableData;
      const json2excel = new Json2excel({ tableData });
      json2excel.generate();
},


 changeData(s) {
      //如果存在ArrayBuffer对象(es6) 最好采用该对象
      if (typeof ArrayBuffer !== "undefined") {
        //1、创建一个字节长度为s.length的内存区域
        var buf = new ArrayBuffer(s.length);
        //2、创建一个指向buf的Unit8视图,开始于字节0,直到缓冲区的末尾
        var view = new Uint8Array(buf);
        //3、返回指定位置的字符的Unicode编码
        for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;
        return buf;
      } else {
        var buf = new Array(s.length);
        for (var i = 0; i != s.length; ++i) buf[i] = s.charCodeAt(i) & 0xff;
        return buf;
      }
 },

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值