通过 axios 下载 excel 表格

条件

后台返回流类型数据

001

axios 响应的类型也为 流类型

002
  • axios 官网


    003

请求的方式 get post 都可以,这里用 post做示范

  • 在请求的接口里面 把默认的 responseType:'json' 改为 responseType:'arraybuffer'
  exportExcel(params){ // 导出电子表格  
    return axios({url: '/daodan/order/excel',method: 'post',data:params, responseType:'arraybuffer',});
  },
  • 在页面中使用
    async handleExport({date}){ // 导出表格
      let startTime = this.handleTime(date[0]);
      let endTime = this.handleTime(date[1]);
      let params = {startTime,endTime}; // 传递的参数

      let res = await common({that:this,api:'exportExcel',params,_type:"导出",});// 封装的方法
      if(res){
        let blob = new Blob([res],{type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'});
        let objectUrl = URL.createObjectURL(blob);
        let a = document.createElement("a");
        a.href = objectUrl;
        a.download = `流水${startTime}至${endTime}`;
        a.click();
        this.handleShowPops();
      }
    },

你可能感兴趣的:(通过 axios 下载 excel 表格)