Vue 前端导出后端返回的excel文件
【摘要】
<Card class="mt20" title="设备数据">
<div slot="extra">
<a class="ml10" hre...
<Card class="mt20" title="设备数据">
<div slot="extra">
<a class="ml10" href="#" @click.prevent="toExcel">
<Icon type="md-download" />
导出设备表
</a>
</div>
</Card>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
// 导出excel表
toExcel () {
const data = {
leftTime: this.leftTime,
pageIndex: 1,
pageSize: 10,
rightTime: this.rightTime,
type: 2
}
toExcel(data).then(res => {
if (!res.data) {
return
}
const blob = new Blob([res.data])
const url = window.URL.createObjectURL(blob)
const aLink = document.createElement('a')
aLink.style.display = 'none'
aLink.href = url
// let fileName = decodeURIComponent(res.headers['content-disposition'].split('filename=')[1])
aLink.setAttribute('download', '用户活跃记录表.xlsx')
document.body.appendChild(aLink)
aLink.click()
document.body.removeChild(aLink) // 下载完成移除元素
window.URL.revokeObjectURL(url) // 释放掉blob对象
}, err => {
// 接口错误
console.log(err)
}).catch((err) => {
// 处理逻辑出错
console.log(err)
})
},
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
仔细看axios请求加了个responseType: ‘blob’ 配置
export const toExcel = data => {
return axios.request({
url: 'xxxxx',
data,
method: 'post',
responseType: 'blob'
})
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
文章来源: lvsige.blog.csdn.net,作者:祥子的小迷妹,版权归原作者所有,如需转载,请联系作者。
原文链接:lvsige.blog.csdn.net/article/details/111596713
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)