再一次开发中遇到一件事情,就是怎样用已有数据导出excel文件,网上有许多方法,有说用数据流的方式,但是现在我的想法是只是用数组数据,不接著与数据流的方式去实现,事实证明是可以的:

1、安装依赖:

//npm 
npm install -S file-saver xlsx
npm install -D script-loader

2、在main.js中进行导入Bolb.js与Export2Excel.js

两个js文件下载:点我下载

VUE中怎么导出excel文件?

import Blob from './excel/Blob'
import Export2Excel from './excel/Export2Excel.js'

3、在组件中使用

//导出的方法
exportExcel() {
    require.ensure([], () => {
        const { export_json_to_excel } = require('../excel/Export2Excel');
        const tHeader = ['序号', '昵称', '姓名'];
        // 上面设置Excel的表格第一行的标题
        const filterVal = ['index', 'nickName', 'name'];
        // 上面的index、nickName、name是tableData里对象的属性
        const list = this.tableData;  //把data里的tableData存到list
        const data = this.formatJson(filterVal, list);
        export_json_to_excel(tHeader, data, '列表excel');
    })
}, 
formatJson(filterVal, jsonData) {
    return jsonData.map(v => filterVal.map(j => v[j]))

tHeader是表头,filterVal 中的数据是表格的字段,tableData中存放表格里的数据,类型为数组,里面存放对象,表格的每一行为一个对象。

如此,就可以了。