记录:axios post 下载excel文件

543 阅读1分钟

api写法

import http from '@/utils/request'//axios 拦截器
// 导出
export function exportData(params) {
  return http({
    url: '/customs/reimburse/export',
    method: 'post',
    params,
    responseType: 'arraybuffer', // 一定要加这一配置,否则导出文件打不开
  })
}

解析处理

let res = await exportData({ ids: 5 })
  let href = window.URL.createObjectURL(new Blob([res],
  { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }))
  const downloadElement = document.createElement('a')
  downloadElement.href = href
  downloadElement.download = '导出报表.xlsx' //下载后文件名
  document.body.appendChild(downloadElement)
  downloadElement.click() //点击下载
  document.body.removeChild(downloadElement) //下载完成移除元素
  window.URL.revokeObjectURL(href) //释放掉blob对象