天天看点

Vue请求后端接口导出excel表格

项目中遇到一个需求,用户下载文件,会从后端那里请求接口获得数据并下载导出excel表格

后端小哥给我返回的是二进制数据流,需要前端自己去处理这些数据

如下图,请求接口返回的数据都是乱码

Vue请求后端接口导出excel表格

这里我们可以在axios的请求里添加,这样返回的二进制数据就会被读取为Blob的数据,

responseType: ‘blob’
fetchGet1(url, params) {
    return axios({
      url,
      method: 'get',
      params,
      header: {
        headers: { 'Content-Type': 'application/x-download' }
      },
      responseType: 'blob'	//指明返回格式
    })
  }
           
//下载接口
export var downLoadOrder = (orderId) => ajax.fetchGet1(`/api/order/excel/${orderId}`)
           
Vue请求后端接口导出excel表格

当我点击下载订单的按钮后,浏览器就自动弹出下载excel文件一栏了,要注意的是,我的电脑好像没有xlsx格式的文件,所以在定义文件名那里改成了xls的格式

Vue请求后端接口导出excel表格

继续阅读