安装依赖
npm install -S file-saver xlsx
npm install xlsx
npm install -D script-loader
下载js(Blob.js、Export2Excel.js)
Export2Excel.js :https://download.csdn.net/download/m0_37549178/19871407
Blob.js : https://download.csdn.net/download/m0_37549178/19871334
开敲代码
//按钮引方法略
methods:{
//导出
async exportExcel() {
//1.我这需要现请求数据回来,你们不用就直接2
const { data: res } = await this.$http.post('export/', this.form)
this.exportList = res.orderList
if (this.exportList != null && this.exportList != '') {
//2.
require.ensure([], () => {
//引入Export2Excel,改成你自己的文件位置哈
const {export_json_to_excel} = require('../assets/js/Export2Excel')
//excel表头
let tableHeader = [
'交货单号',
'……',
'……'
]
//表头对应的数据
let filterVal = [
'orderid',
'……',
'……'
]
//需要对查到的数据进行处理,就如下代码中部分
//不需要就直接 let list = this.exportList
// this.exportList 为选中的要导出的数据,用filterTableData方法先处理一下数据格式(要进行深度拷贝,以免过滤的时候,影响页面上展示的数据),再存到list
let list = this.filterTableData(JSON.parse(JSON.stringify(this.exportList )))
//处理数据
let data = this.formatJson(filterVal, list)
export_json_to_excel(tableHeader, data, "订单统计") //表头,数据,表名
})
} else {
this.$message.error('暂未查询出数据')
}
},
formatJson(filterVal, Data) {
return Data.map((v) => filterVal.map((j) => v[j]))
},
filterTableData(data) {
data.forEach((item) => {
// 将地市拼接在一起
item.carkind == '1' ? (item.carkind = '专车') : (item.carkind = '拼车')
})
return data
},
}