vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue下载Excel后报错,或打不开

Vue下载Excel后报错,或打不开的解决

作者:广州第22号吴彦祖

这篇文章主要介绍了Vue下载Excel后报错,或打不开的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题描述

后端返回excel文件流后, 在Swagger 和 PostMan上进行下载测试均正常

下载及打开

但是在项目中下载打开却出现: WPS表格在试图打开文件时遇到错误.

如图

问题呢,是我们在发送请求时,没有声明返回的responseType

设置一下就好了

上代码:

// 加上responseTape 
export function getSiteElectricDataExcel(data) {
  return request({
    url:apiURL.newDataSite,
    method: 'post',
    data,
    responseType: 'blob'
  })
}

接收后的下载逻辑:

download(){
     getSiteElectricDataExport(this.params).then(res=>{
        let url = window.URL.createObjectURL(new Blob([res]));
        let link = document.createElement("a");
        link.style.display = "none";
        link.href = url;
        // 生成时间戳
        let timestamp = name+"_" + new Date().getTime();
        link.download = "测试文档.xlsx";
        document.body.appendChild(link);
        link.click();
      })
    },

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文