0
点赞
收藏
分享

微信扫一扫

导出xlsx

大自然在召唤 2022-04-14 阅读 44
vue.js
    exportFunc(e) {
      // 从表生成工作簿对象
      const wb = XLSX.utils.table_to_book(document.getElementById('out-table'));
      // 得到二进制字符串作为输出
      const wbout = XLSX.write(wb, {
        bookType: 'xlsx',
        type: 'binary',
      });
      FileSaver.saveAs(new Blob([this.s2ab(wbout)], {
        type: 'application/octet-stream',
      }), 'a.xlsx');
       console.log("列表d阿初",wb)
    },
    s2ab(s) {
     
      let cuf;
      let i;
      if (typeof ArrayBuffer !== 'undefined') {
        cuf = new ArrayBuffer(s.length);
        const view = new Uint8Array(cuf);
        for (i = 0; i !== s.length; i++) {
          view[i] = s.charCodeAt(i) & 0xFF;
        }
        return cuf;
      }
      cuf = new Array(s.length);
      for (i = 0; i !== s.length; ++i) {
        cuf[i] = s.charCodeAt(i) & oxFF;
      }
     
      return cuf;
    },

添加数据

 exportFunc(row){
                  console.log("执行",this.selectedState.length)
      console.log(row);
      console.log(this.varData)
                 const defaultCellStyle =  { font: { name: "Verdana", sz: 11, color: "FF00FF88"}, fill: {fgColor: {rgb: "FFFFAA00"}}};
                 const wopts = { bookType:'xlsx', bookSST:false, type:'binary', defaultCellStyle: defaultCellStyle, showGridLines: false};
                 const wb = { SheetNames: ['Sheet1'], Sheets: {}, Props: {} };
                 let data= ''; //存放要导出的数据 可能是数组  let data[]  
                 if(this.selectedState.length ==0){
                    data = this.varData
                    console.log("dd",data)
                 }
                 if(this.selectedState.length != 0){
                   data = this.selectedState
                    console.log("ddw",data)
                 }
                wb.Sheets['Sheet1'] = XLSX.utils.json_to_sheet(data)
                
                //创建二进制对象写入转换好的字节流
               let tmpDown =  new Blob([this.s2abc(XLSX.write(wb, wopts))], { type: "application/octet-stream" })
               FileSaver.saveAs(tmpDown, "表格.xls");
             },
             //字符串转字符流
s2abc (s) {
                if (typeof ArrayBuffer !== 'undefined') {  
                    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;  
                } else {  
                    var buf = new Array(s.length);  
                    for (var i = 0; i != s.length; ++i) buf[i] = s.charCodeAt(i) & 0xFF;  
                    return buf;  
                }},
举报

相关推荐

0 条评论