Vue結合后台導入導出Excel問題詳解


話不多說,直接上前端代碼

axios({
  method: 'post',
  url: 'http://localhost:19090/exportUser',//這個是請求的地址
  params: {//這個是請求的參數
   email: this.email,
   startRegisterDate: this.registerStartTime,
   endRegisterDate: this.registerEndTime
  },
  responseType: 'blob'
  }).then((res) => {
  console.log(res)
  const link = document.createElement('a')
  let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'});
  link.style.display = 'none'
  link.href = URL.createObjectURL(blob);
  let num = ''
  for(let i=0;i < 10;i++){
   num += Math.ceil(Math.random() * 10)
  }
  link.setAttribute('download', '用戶_' + num + '.xls')
  document.body.appendChild(link)
  link.click()
  document.body.removeChild(link)
  }).catch(error => {
 
  console.log(error)
  })

仔細看axios請求加了個responseType: 'blob'配置,這是很重要的

我的項目因為請求頭里面需要加sessionId,所以需要用上面方法

 

如果是get請求,請求頭不需要額外加參數,直接 window.location.href='http://localhost:19090/exportUser?email='+email+"&start="+start ,打開一個地址即可

后續ie兼容修改請參考 https://www.cnblogs.com/ttjm/p/11661133.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM