Vue结合后台导入导出Excel问题详解

话不多说,直接上前端代码

axios({

  method: 'post',

  url: 'http://localhost:19090/exportUser',//这个是请求的地址

  params: {//这个是请求的参数

  email: this.email,

  startRegisterDate: this.registerStartTime,

  endRegisterDate: this.registerEndTime

  },

  responseType: 'blob'

  }).then((res) => {

  console.log(res)

  const link = document.createElement('a')

  let blob = new Blob([res.data],{type: 'application/vnd.ms-excel'});

  link.style.display = 'none'

  link.href = URL.createObjectURL(blob);

  let num = ''

  for(let i=0;i < 10;i++){

  num += Math.ceil(Math.random() * 10)

  }

  link.setAttribute('download', '用户_' + num + '.xls')

  document.body.appendChild(link)

  link.click()

  document.body.removeChild(link)

  }).catch(error => {

  console.log(error)

  })


仔细看axios请求加了个responseType: 'blob'配置,这是很重要的

我的项目因为请求头里面需要加sessionId,所以需要用上面方法


如果是get请求,请求头不需要额外加参数,直接 window.location.href='http://localhost:19090/exportUser?email='+email+"&start="+start ,打开一个地址即可

你可能感兴趣的:(Vue结合后台导入导出Excel问题详解)