vue 导出后台返回的的excel,因为有的时候后台自己的逻辑需要导出一些表格,后台会给我们返回个stream ,如下图
代码部分
// 导出这个接口,bolb一定要加
export function exportApplyOnline(params) {
return request({
url: '/admin/applyOnline/exportApplyOnline',
responseType: 'blob',
method: 'get',
params
})
}
// 调用阶段
exportApplyOnline({}).then(res => {
console.log(res) //调用接口后返回的结果
const link = document.createElement('a')
// 注释部分是下载zip
//const blob = new Blob([res], { type: 'application/zip' })
const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
console.log(blob)
link.style.display = 'none'
link.href = URL.createObjectURL(blob)
///link.download = 'xxx.zip' //下载zip包的名称
link.download = 'xxx.xlsx' // 下载的文件名
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
})
就是通过我们的a标签来下载,上面代码中就是偷偷的加了个a标签用完偷偷删除掉了,下载zip只是它的type类型不一样,如果你需要那个就下载什么就把相对应的注释打开就好。