axios下载Excel到本地

axios下载二级制流形式的Excel文件。

后台服务接口返回的Excel为二进制流,如下图所示:
axios下载Excel到本地_第1张图片

前台页面利用 axios下载Excel,处理方式如下代码所示:

//查询条件
formInline: {
   saleName: "",
   doctorName: "",
   goodsName: "",
   startDate: "",
   endDate: ""
}
  

axios({
        method: 'post',
        url: "/apr/test/export",
        responseType: 'blob',   
        data: qs.stringify(this.formInline) //根据查询条件,下载匹配数据的Excel表格
      }).then(res => {
        if (res.data) {
          //获取文件名
          let fileName = res.headers["content-disposition"].substring(
            res.headers["content-disposition"].indexOf("=") + 1
          );
          let blob = new Blob([res.data], { type: "application/x-xls" });
          if (window.navigator.msSaveOrOpenBlob) {
            navigator.msSaveBlob(blob, fileName);
          } else {
            //下载
            var link = document.createElement("a");
            link.href = window.URL.createObjectURL(blob);
            link.download = fileName;
            link.click();
            window.URL.revokeObjectURL(link.href);
          }
        }
      });

 

点击 “下载Excel“ 按钮的效果如下图:

axios下载Excel到本地_第2张图片

完成^_^

你可能感兴趣的:(vue)