項目中不可避免出現需要下載的情況,大公司內部開發的工具,多數具有報表的導出功能,所以如何實現呢?
需要的相關插件和準備工作:
1,從npm中下載3個插件:
npm install file-saver xlsx>
2,另外需要再去找到兩個js插件放到項目文件夾:
Blob.js和Export2Excel.js兩個js
本例放到:assets下新建js文件夾內
3,在Export2Excel.js源碼內頂部引入:
require('script-loader!file-saver');
require('script-loader!../../assets/js/Blob');
require('script-loader!xlsx/dist/xlsx.core.min');
4,在需要使用下載的地方引入:
import {export_json_to_excel} from './../assets/js/Export2Excel'
注意:Export2Excel導出方式為default ,需要以{}導出變量讀取
5,使用:
表格數據如下:
data(){
return{
tableData:[{index:"123",provinces:"123", orderMoney:"123", incomeMoney:"123",}]
}
},
methods:{
exportToExcel() {
//excel數據導出
//表格標題
const tHeader = ['序號','支出', '收入', '收益總額'];
//表格數據字段
const filterVal = ['index','provinces', 'orderMoney', 'incomeMoney'];
//表格整個數據組
const list = this.tableData;
const data = this.formatJson(filterVal, list);
export_json_to_excel(tHeader, data, '列表');
},
formatJson(filterVal, jsonData) {
return jsonData.map(v => filterVal.map(j => v[j]))
}
}
多數項目是數據加圖表結合的,目前暫時實現圖表的下載,圖表的寫入有待研究,如果有比較熟練度小夥伴們可以一起交流啊!