blob下载excel

解决后端文件流到前端乱码情况
/**

  • baseUrl :你的基础地址,这里一般都会做跨域代理,如果做了跨域代理就是的代理后的地址,如果没有可以直接粘贴基础地址 + 后面为接口加参数
  • new Blob(你请求返回来的文件流,你要下载的文件类型)
  • el.setAttribute(‘download’, ‘文件名(你想要什么名字就写什么)’)
  • 后面的就是移除元素和释放blob
    */
    //下载模板
    handleDownload() {
    const listId = this.fileData.listId;
    axios({
    method: ‘get’,
    url: baseUrl + this.urlMap.downloadUrl + ‘listId’ + ‘=’ + listId,
    responseType: ‘blob’,
    headers: { Authorization: window.sessionStorage.getItem(‘accessToken’) }
    }).then(res => {
    const blob = new Blob([res.data], { type: ‘application/vnd.ms-excel’ })
    const el = document.createElement(‘a’)
    el.style.display = ‘none’
    el.href = URL.createObjectURL(blob)
    el.download = ‘部门危险品清单列表.xlsx’
    document.body.appendChild(el)
    el.click()
    URL.revokeObjectURL(blob)
    document.body.removeChild(el)
    })
    },

!!!由于非常简单就没有封装axios,多多交流 欢迎大神多多指教留言

你可能感兴趣的:(vue,javascript,前端,excel,vue)