文件的異步導(dǎo)出,此處是采用post的方法導(dǎo)出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
})
調(diào)用接口獲取流文件之后獲取數(shù)據(jù),進(jìn)行下載處理
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('導(dǎo)出錯誤')
reject(e)
}
})
文件下載ok