码迷,mamicode.com
首页 > 其他好文 > 详细

vue中导出Excel文件流

时间:2020-07-10 13:28:45      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:ic卡   error   封装   nes   ons   type   数据   script   append   

1、封装导出的方法

export function httpExport (url, params) {
  return new Promise((resolve, reject) => {
    axios({
      url: url,
      method: ‘post‘,
      data: params,
      responseType: ‘blob‘
    })
      .then(res => {
        debugger
        resolve(res)
      })
      .catch(err => {
        if (err === undefined || err.__CANCEL__) {
          return
        }
        notification.error({
          title: ‘错误‘,
          message: err
        })
        reject(err)
      })
  })
}

 2、处理respones数据

if (res) {
          const fileName = ‘未绑定IC卡列表.xlsx‘
          const content = res.data
          const blob = new Blob([content])
          if (‘download‘ in document.createElement(‘a‘)) { // 非IE下载
            const elink = document.createElement(‘a‘)
            elink.download = fileName
            elink.style.display = ‘none‘
            elink.href = URL.createObjectURL(blob)
            document.body.appendChild(elink)
            elink.click()
            URL.revokeObjectURL(elink.href) // 释放URL 对象
            document.body.removeChild(elink)
          } else { // IE10+下载
            navigator.msSaveBlob(blob, fileName)
          }
        }

 3、在axios拦截器中处理响应体(普通的响应体是response.data)

if (
      response.headers[‘content-type‘] ===
      ‘application/vnd.ms-excel;charset=UTF-8‘
    ) {
      // 是否为导出
      return Promise.resolve(response)
    }

 

vue中导出Excel文件流

标签:ic卡   error   封装   nes   ons   type   数据   script   append   

原文地址:https://www.cnblogs.com/wenshaochang123/p/13278554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!