vue导出excel的问题

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

回到顶部