前端导出excel

const { Parser } = require('json2csv')
    exportCsv () {
      if (this.execResult.length == 0) {
        this.$message({ showClose: true, message: '没有可以导出的数据', type: 'error' });
        return;
      }
      try {
        let columns = this.$refs.table.$children.filter(t => t.prop != null)
        const fields = columns.map(t => t.prop)
        const fieldNames = columns.map(t => t.label)

        var link = document.createElement('a');
        const json2csvParser = new Parser({ fields });
        // var result = json2csv({ data: this.execResult, fields: fields, fieldNames: fieldNames });
        var result = json2csvParser.parse(this.execResult);

        var csvContent = 'data:text/csv;charset=GBK,\uFEFF' + result;
        var encodedUri = encodeURI(csvContent);
        var blob = new Blob(['\ufeff' + result], { type: 'text/csv' }); // 解决大文件下载失败
        link.setAttribute('href', URL.createObjectURL(blob));
        link.setAttribute('download', this.scriptData.ScriptName + '.csv');
        document.body.appendChild(link); // Required for FF
        link.click(); // This will download the data file named "my_data.csv".
        document.body.removeChild(link); // Required for FF
      } catch (err) {
        this.$message({ showClose: true, message: '导出失败', type: 'error' });
      }
    }

 

posted on 2019-11-26 10:56  凡一二三  阅读(453)  评论(0编辑  收藏  举报