vue导出excel的问题

发布于 2022-09-13 01:27:31 字数 676 浏览 30 评论 0

前端导出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
  })
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风为裳 2022-09-20 01:27:31

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);
      });
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文