Vue结合后台导入导出Excel问题详解:
话不多说,直接上前端代码
问题描述:
仔细看axios请求加了个responseType: 'blob’配置,这是很重要的
如果是get请求,请求头不需要额外加参数,直接 window.location.href='http://localhost:19090/exportUser?email='+email+"&start="+start
,打开一个地址即可
axios({
method: 'post',
url: 'http://localhost:19090/exportUser',//这个是请求的地址
params: {//这个是请求的参数
email: this.email,
startRegisterDate: this.registerStartTime,
endRegisterDate: this.registerEndTime
},
responseType: 'blob'
}).then((res) => {
console.log(res)
const link = document.createElement('a')
let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'});
link.style.display = 'none'
link.href = URL.createObjectURL(blob);
let num = ''
for(let i=0;i < 10;i++){
num += Math.ceil(Math.random() * 10)
}
link.setAttribute('download', '用户_' + num + '.xls')
document.body.appendChild(link)
link.click()
document.body.removeChild(link)
}).catch(error => {
console.log(error)
})