vue+axios请求下载excel文件打开文件后显示undefined

getExcel(data){

return axios.get("/writeExcel",data,{responseType: 'blob'});

}

Excel(id){

  let data={params:{id:id}}
  this.$axios.getExcel(data).then(rs =>{
    console.log(rs,'123132')

   let blob = new Blob([rs], {type: "application/vnd.ms-excel;charset=utf-8"});

    let url = window.URL.createObjectURL(blob);
    console.log(blob,'1')
    console.log(url,'2')
    window.location.href = url;

    
  })
}

clipboard.png

clipboard.png

clipboard.png

clipboard.png
查阅了很多资料也设置了blob,仍然无法正确下载excel。求解

阅读 17.4k
8 个回答
export function exportExcelCb(content, fileName) {
    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)
    }
}

这样调用试试

我的理解,下载的文件就是把后台给我们的地址打开。
如果下载文件有问题,是后台给的下载地址就有问题啊。

新手上路,请多包涵

res.data

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题