开发中遇到需求要下载excel表格,由后台返回excel表格文件流。
// 拼接接口需要的数据
let sign = {
sTime: this.tempDate[0] || '',
eTime: this.tempDate[1] || '',
idOrTitle: this.queryInfo.idOrTitle || '',
status: this.queryInfo.status
}
//调用接口获取
axios.request({
method: "post",
url: '/release/goodsListVo',
responseType: "blob",
params: sign,
}).then(function (response) {
//获取到接口返回的excel文件流,通过downloadElement进行处理
let blob = new Blob([response.data]);
let downloadElement = document.createElement("a");
let href = window.URL.createObjectURL(blob);
downloadElement.href = href;
// 自定义下载excel表格的名称
downloadElement.download = '商品列表.xlsx';
document.body.appendChild(downloadElement);
downloadElement.click();
document.body.removeChild(downloadElement);
window.URL.revokeObjectURL(href);
})
//接口报错提示
.catch(function (error) {
this.$message.error(error);
});