vue解析后台推送的文件流并生成excel文件

  • 需求:用户点击时间选择器后,点击导出excel的按钮,请求接口生成excel文件

  • 后台写的接口,可以直接生成excel,前端不需要做任何的处理。但是发送axios请求发现并不能直接生成下载的excel。(如果在浏览器窗口直接请求该接口是可以直接下载excel,直接在项目中无法直接生成excel)

  • 解决

    • 添加responseType: ‘blob’
      在这里插入图片描述
    • 该参数一定要写不然下载的excel打不开
    • 接口请求处理
            const res = await getExportExcel(params)
         console.log('导出', blob)
         var blob = new Blob([res], {
          
          
           type: 'application/vnd.ms-excel;charset=UTF-8'
         })
         var link = document.createElement('a')
         link.href = window.URL.createObjectURL(blob)
         link.download = `${
            
            this.roadname}.xls` //后缀要修改,和需要的文件名,不然下载的不是excel文件
         link.target = '_blank'
         link.click()
         window.URL.revokeObjectURL(link.href)
    

猜你喜欢

转载自blog.csdn.net/weixin_43794749/article/details/118155463