文件的异步导出,此处是采用post的方法导出excel
axios({
method: 'POST',
url: '接口链接',
data: param,
responseType: 'blob' //必须添加最后才能形成流文件
}).then(response => {
this.exportExcel(response, '生成文件的名称', this.searchForm.startTimeDate, this.searchForm.endTimeDate)
this.loadingFull = false
}).catch(error => {
console.log(error)
this.loadingFull = false
})
调用接口获取流文件之后获取数据,进行下载处理
exportExcel (res, fileName, startTimeDate, endTimeDate) {
return new Promise((resolve, reject) => {
try {
const blob = new Blob([res.data], {
type: 'application/vnd.ms-excel'
})
const elink = document.createElement('a')
// let timestamp = Date.parse(new Date())
elink.style.display = 'none'
elink.download = fileName + startTimeDate + '.' + endTimeDate + '.xlsx' // 文件名称
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
return
} catch (e) {
console.log('导出错误')
reject(e)
}
})
文件下载ok
网友评论