項(xiàng)目背景:需要導(dǎo)出用戶的訂閱消息的信息列表
后端支持:接口返回二進(jìn)制流文件,直接調(diào)用接口就可獲取xslx
前端準(zhǔn)備:看代碼
const data = this.formData //接口入?yún)?shù)
const url = '/v2/XXXX/xxxxxx/export' //接口路徑
//responseType: 'blob',一定不要忘記,不然會(huì)亂碼
axios.post( url, data ,{headers:{token: 'XXXXXX'},responseType: 'blob'}).then( (res) => {
if(res.status === 200 && res.data){
// type: 'text/csv;charset=utf-8,%EF%BB%BF' ;
//需要導(dǎo)出 csv文件就用這上面的格式,需要導(dǎo)出xlsx就用下面的
const blob = new Blob([res.data],{type:'application/vnd.ms-excel'})
const href = window.URL.createObjectURL(blob) // 創(chuàng)建下載的鏈接
let downloadElement = document.createElement('a')
downloadElement.href = href
// 自定義下載后文件名,可以不設(shè)置
downloadElement.download = 'filename.xlsx'
downloadElement.click()
window.URL.revokeObjectURL(href) //釋放掉blob對(duì)象
}else{
this.error(res.message)
}
}).catch((error)=>{
console.log(error)
})
記錄一下,下次用起來(lái)可以直接找