在vue项目中,需要有一个导出表格的操作,后端提供接口返回流,然后前端通过请求直接下载
但是我通过网上的资料,自己搞得目前是可以下载,但是下载下来的文件大小是不正确的,然后下下来的文件也打不开
具体代码如下:
// 下载
download (data) {
if (!data) {
return
}
let url = window.URL.createObjectURL(new Blob([data]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', 'excel.xlsx')
document.body.appendChild(link)
link.click()
},
// 导出报表
exportReport() {
util.request.post({
url: 'demand/analysis/file',
data: {
bg_code: this.businessGroup,
statistics_time: this.analysisData[this.selName+'time']
},
that:this,
success: result=> {
this.download(result)
console.log(result)
},
fail: error=> {
console.log(error)
}
})
}
文件打开后是这样的:
我用postman的send and download试了下,是好用的,但是就是不知道为啥我的程序中会出现这种情况,希望遇到过类似情况的大神能帮助指导下,我的代码哪块有问题
可以看看这个库FileSaver