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

淡水海边
  • 60

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。求解

评论
阅读 3.5k
7 个回答
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)
    }
}

这样调用试试

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

清风
  • 2
新手上路,请多包涵

res.data

qinfp123
  • 0
新手上路,请多包涵

解决了吗?我也遇到同样的问题,不知道怎么解决...

~~~
  • 1
新手上路,请多包涵

我也遇到了这个问题,请问您这边后来是怎么解决的呀

Lin-Ling-s
  • 1
新手上路,请多包涵

解决了吗????

张然
  • 0
新手上路,请多包涵

请问解决了吗

宣传栏