<template>  <div style="display:inline-block;vertical-align: middle;">    <Button      type="primary"      size="small"      style="float:right"      :disabled='!options.data.length'      @click="_export"    >谬误导出</Button>  </div></template><script>import XLSX from "xlsx";import "xlsx/dist/xlsx.full.min.js";import saveAs from "file-saver/FileSaver.min.js";export default {  data() {    return {      modal: {        isShow: false      },      limitNumber: 30000, // 单个excel下限数据量      totalCount: 0,      exportArr: [],      changeObj: {}    };  },  methods: {    _export() {      let returnArr = [];      let columns = this.options.columns;      let data = this.options.data;      let tempArr = [];      columns.forEach(item => tempArr.push(item.label));      returnArr.push(tempArr);      data.forEach(item => {        let keyArr = [];        columns.forEach(col => keyArr.push(item[col.prop]));        returnArr.push(keyArr);      });      const wopts = { bookType: 'xlsx', bookSST: false, type: 'binary' };      const wb = { SheetNames: ['Sheet1'], Sheets: {}, Props: {} };      let objName = this.options.name ? this.options.name : "数据导出";      // wb.Sheets["Sheet1"] = XLSX.utils.json_to_sheet(returnArr);      wb.Sheets['Sheet1'] = XLSX.utils.aoa_to_sheet(returnArr);      saveAs.saveAs(        new Blob([s2ab(XLSX.write(wb, wopts))], {          type: "application/octet-stream"        }),        objName + "." + (wopts.bookType == "biff2" ? "xls" : wopts.bookType)      );      function s2ab(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;        }      }    }  },  props: ["options"]};</script>