其他分享
首页 > 其他分享> > 前端sheet.js导出execl

前端sheet.js导出execl

作者:互联网

 import XLSX from 'xlsx'
 
 handleExportID () {
      // 将workbook装化成blob对象
      function workbook2blob (workbook) {
        // 生成excel的配置项
        var wopts = {
        // 要生成的文件类型
          bookType: 'xlsx',
          // // 是否生成Shared String Table,官方解释是,如果开启生成速度会下降,但在低版本IOS设备上有更好的兼容性
          bookSST: true,
          type: 'binary'
        }
        var wbout = XLSX.write(workbook, wopts)
        // 将字符串转ArrayBuffer
        function 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
      }

      // 将blob对象创建bloburl,然后用a标签实现弹出下载框
      function 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')
        aLink.dispatchEvent(event)
      }
      // 用的例子
      let sheet1data = []
      this.outList.map((item, index, arry) => {
        sheet1data.push({ '证券代码': item.securityCode, '证券名称': item.securityName })
      })
      let sheet2data = []
      this.foldList.map((item, index, arry) => {
        sheet2data.push({ '证券代码': item.securityCode, '证券名称': item.securityName })
      })
      console.log(sheet1data, 'ppppppppppp')
      var sheet1 = XLSX.utils.json_to_sheet(sheet1data)
      var sheet2 = XLSX.utils.json_to_sheet(sheet2data)
      // var sheet3 = XLSX.utils.json_to_sheet(sheet3data)

      /* create a new blank workbook */
      var wb = XLSX.utils.book_new()
      XLSX.utils.book_append_sheet(wb, sheet1, '调出')
      XLSX.utils.book_append_sheet(wb, sheet2, '调入')
      const workbookBlob = workbook2blob(wb)
      let title = this.form.adjustDate + this.form.indexName
      openDownloadDialog(workbookBlob, `${title}调入调出.xlsx`)
    },

标签:execl,XLSX,sheet,js,item,blob,var,new
来源: https://blog.csdn.net/m0_37962105/article/details/122455480