前端處理后端返回文件流實現導出Excel


前端處理后端返回文件流實現導出Excel

實現功能:

前端發送請求后,接收后端返回的文件流(一般是亂碼),實現導出Excel的方法。

js代碼(封裝的promise對象):

import Vue from 'vue'
import notification from 'ant-design-vue/es/notification'

// 實例化Vue對象
const vm = new Vue()

/**
 * 前端處理后端返回文件流實現導出Excel的方法
 *
 * @export
 * @param {String} url 接口地址
 * @param {Object} params 傳遞參數
 * @param {String} fileName 文件名稱
 * @return {Promise} Promise對象
 */
export function getExcelExport (url, params, fileName) {
  return new Promise((resolve, reject) => {
    vm.$http.post(url, params, { responseType: 'blob' }).then(res => {
      const link = document.createElement('a')
      const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
      link.style.display = 'none'
      link.href = URL.createObjectURL(blob)
      link.setAttribute('download', `${fileName || '導出文件'}.xls`)
      document.body.appendChild(link)
      link.click()
      document.body.removeChild(link)
      resolve({ message: '導出成功' })
    }).catch(err => {
      notification.error({
        message: '錯誤',
        description: '導出接口出錯'
      })
      reject(err)
    })
  })
}

如有錯誤,請多指教,謝謝!


免責聲明!

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



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