前端vue使用js-xlsx导出excel的三种方法

npm install --save xlsx file-saver

在组件里面引入

 import FileSaver from ‘file-saver‘
    import XLSX from ‘xlsx‘

第一种 其中#outTable是在el-table上定义的id

exportExcel() {
      var xlsxParam = { raw: true };//转换成excel时,使用原始的格式
      var wb = XLSX.utils.table_to_book(document.querySelector("#outTable"),xlsxParam);//outTable为列表id
      var wbout = XLSX.write(wb, {
        bookType: "xlsx",
        bookSST: true,
        type: "array"
      });
      try {
        FileSaver.saveAs(
          new Blob([wbout], { type: "application/octet-stream;charset=utf-8" }),
          "sheetjs.xlsx"
        );
      } catch (e) {
        if (typeof console !== "undefined") console.log(e, wbout);
      }
      return wbout;}

第二种 通过数组导出excel

      var _data = [

        [ "id",    "name", "value" ],

        [    1, "sheetjs",    7262 ],

        [    2, "js-xlsx",    6969 ]

      ];
      const ws= XLSX.utils.aoa_to_sheet(_data);

      /* generate workbook and add the worksheet */
      const wb = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(wb, ws, ‘Sheet1‘);

      /* save to file */
      XLSX.writeFile(wb, ‘SheetJS.xlsx‘);

第三种通过json导出excel


exportExcel() {

var wopts = {
        bookType: ‘xlsx‘,
        bookSST: true,
        type: ‘binary‘
      };
      var workBook = {
        SheetNames: [‘Sheet1‘],
        Sheets: {},
        Props: {}
      };
      var table = [];
        for(var i=0;i<this.multipleSelection.length;i++){
          var params = {
            姓名: this.multipleSelection[i].name,
            部门: this.multipleSelection[i].department,
            职务名称: this.multipleSelection[i].titles,
            档案编号:this.multipleSelection[i].fileNum,
            校验状态:this.multipleSelection[i].verifyStatus,
            审核状态:this.multipleSelection[i].checkedStatus,
            备注:this.multipleSelection[i].checkedReason,
          }
          table[i] = params
      };
      //1、XLSX.utils.json_to_sheet(data) 接收一个对象数组并返回一个基于对象关键字自动生成的“标题”的工作表,默认的列顺序由使用Object.keys的字段的第一次出现确定
      //2、将数据放入对象workBook的Sheets中等待输出
      workBook.Sheets[‘Sheet1‘] = XLSX.utils.json_to_sheet(table);

      //3、XLSX.write() 开始编写Excel表格
      //4、changeData() 将数据处理成需要输出的格式
      FileSaver.saveAs(new Blob([this.changeData(XLSX.write(workBook, wopts))], {type: ‘application/octet-stream‘}), "sheetjs.xlsx")
    },
     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;
    }
  },

第三种适合导出选中的数据如果选中的json数据字段都是你需要的可以用下面的方法导出

const workSheet =  XLSX.utils.json_to_sheet(this.multipleSelection, {    header: [‘列1‘, ‘列2‘, ‘列3‘, ‘列1‘, ‘列2‘, ‘列3‘, ‘列1‘, ‘列2‘],    skipHeader: true// 跳过上面的标题行  });const ws = XLSX.utils.aoa_to_sheet(workSheet);const wb = XLSX.utils.book_new();XLSX.utils.book_append_sheet(wb, ws, ‘Sheet1‘);

/* save to file */XLSX.writeFile(wb, ‘SheetJS.xlsx‘);

原文地址:https://www.cnblogs.com/dragonKings/p/12155289.html

时间: 2024-08-29 19:22:13

前端vue使用js-xlsx导出excel的三种方法的相关文章

.NET导出Excel的四种方法及评测

.NET导出Excel的四种方法及评测 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspose.Cells四个市面上常见的库,各完成一个导出Excel示例.然后对其代码风格和性能做一个横向比较.最后我将说出我自己的感想. 文中所有的示例代码可以在这里下载: https://github.com/sdcb/blog-data/tree/master/2019/20190824-dotnet

.Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法)

.Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构) public class ExcelController : Controller { // // GET: /Excel/ Models.zbwxglEntities myMdl = new Models.zbwxglEntities(); /// <summary> /// 第一种方法,利用文件输出流进行读写操作 /// <

(转)在网页中JS函数自动执行常用三种方法

原文:http://blog.sina.com.cn/s/blog_6f6b4c3c0100nxx8.html 在网页中JS函数自动执行常用三种方法 在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: <SCRIPT   LANGUAGE="JavaScript">   functionn MyAutoRun() {   //以下是您的函数的代码,请自行修改先! alert("函数自动执行哦!");   } </SCR

在网页中JS函数自动执行常用三种方法

在网页中JS函数自动执行常用三种方法 在HTML中的Head区域中,有如下函数: <SCRIPT   LANGUAGE="JavaScript">   functionn MyAutoRun() {   //以下是您的函数的代码,请自行修改先! alert("函数自动执行哦!");   }  </SCRIPT> 下面,我们就针对上面的函数,让其在网页载入的时候自动运行! ①第一种方法 将如上代码改为: <SCRIPT   LANGUAG

【转】asp.net导出数据到Excel的三种方法

来源:http://www.cnblogs.com/lishengpeng1982/archive/2008/04/03/1135490.html 原文出处:http://blog.csdn.net/cpp2017/article/details/2244368 asp.net导出到Excel也是个老生常谈的问题,在此归纳一下. 第一种是比较常用的方法.是利用控件的RenderControl功能,得到该控件生成的HTML,然后以Excel文件的类型输出到客户端.这种方法生成的其实是个HTML文件

day7_写excel的三种方法

方法一: import xlwt book = xlwt.Workbook() # 创建一个excel sheet = book.add_sheet('sheet1') # 添加一个sheet页,也可把sheet1改成别的名字 sheet.write(0,0,'姓名') # 0行,0列,写入内容 sheet.write(0,1,'年龄') # 0行,1列,写入内容 sheet.write(0,2,'身高') # 0行,2列,写入内容 sheet.write(1,0,'孙树江') # 1行,0列,

POI导出excel的三种方式

原文链接:https://www.cnblogs.com/zhaoblog/p/7661245.html poi导出excel最常用的是第一种方式HSSFWorkbook,不过这种方式数据量大的话会产生内存溢出问题,SXSSFWorkbook是一种大数据量导出格式,csv是另一种excel导出的一种轻快的实现. 先介绍一下这三种格式的特点 1 HSSFWorkbook  excel文件底层是txt实现,我们经常见到的excel都是这种实现的. 2 SXSSFWorkbook  excel文件底层

Oracle导出Excel,两种方法比较

/// <summary> /// 普通方式 生成EXCEL /// </summary> /// <param name="dt">临时表</param> /// <param name="filePath">文件名 带路径</param> /// <param name="fileName">文件名</param> public void Crea

C#导出EXCEL的几种方法

using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Windows.Forms; using System.Reflection; namespace DMS { /// <summary> /// C#操作Excel类 /// </summary> class ExcelOperate { //法一 //public bool Data