vue导出excel的问题
前端导出excel显示object Object,调后台是get去请求,response返回文件名去获取,我拿url放到浏览器下载的文件可以正常显示,但在系统里面却不行,请问这是什么原因?
这块是导出的js方法
// 导出模板 templateDownload() {
const param = new URLSearchParams()
param.append('fileName', '维护模版')
downloadTemplate(param).then(response => {
var fileDownload = require('js-file-download')
fileDownload(response, '维护模版.xlsx')
})
},
下面是接口请求
//导出export function downloadTemplate(query) {
return axios({
url: `${process.env.VUE_APP_BASE_TEST_API}${'/report/exp/downloadTemp'}`,
method: 'get',
responseType: 'arraybuffer',
params: query
})
}
回答:
responseType
改为blob
试试
参考前端常用文件下载上传方法
//data downloadImgSrc:'https://i.picsum.photos/id/452/400/300.jpg?hmac=0-o_NOka_K6sQ_sUD84nxkExoDk3Bc0Qi7Y541CQZEs'
//methods
downloadImg() {
axios({
url: this.downloadImgSrc, //URL,根据实际情况来
method: "get",
responseType: "blob"
}).then(function (response) {
const link = document.createElement("a");
let blob = new Blob([response.data], { type: response.data.type });
let url = URL.createObjectURL(blob);
link.href = url;
link.download = `实际需要的文件名.xlsx`;
link.click();
document.body.removeChild(link);
});
}
以上是 vue导出excel的问题 的全部内容, 来源链接: utcz.com/p/936145.html