vue項目實現導出數據到excel


實現導出功能分兩種,一種是客戶端拿到數據做導出,第二種是服務器端處理好,返回一個數據流實現導出

第一種網上很容易找到,也很好用,本文要說的是第二種。

fetchExport({
        id: this.sourceId,
        begin: this.$route.query.begin,
        end: this.$route.query.end
      }).then(res => {
        const blob = new Blob([res.data], {
          type: 'application/vnd.ms-excel',
          crossOrigin: 'Anonymous'
        })
        const objectUrl = URL.createObjectURL(blob)
        window.location.href = objectUrl
      }).catch(err => {
        console.log(err)
      })

  

服務器端返回的是流數據,js提供了對應的處理方法,fetchExport是封裝的ajax請求方法,利用axios創建一個實例,請求頭要特別注意設置響應類型,否則下載的表格異常,如下

export function fetchExport(query) {
  return request({
    url: '你的url',
    method: 'get',
    params: query,
    responseType: 'arraybuffer', // 這個一定要有
    xsrfHeaderName: 'Authorization'
  })
}

  


免責聲明!

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



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