vue + element ui 下载Excel后 无法打开

后端返回的byte Stream数据

element ui 组件代码

download函数

打开excel时的错误

我们现在有一个需求: 在前端上传一个文件,后端把文件处理下返回一个新的字节流到前端, 然后直接下载下来。
问题: 在下载Excel 之后 显示错误,不知是否有人知道怎么解决这个问题,或者哪里设置错误?非常感谢!

后端使用的是Excel 2007的模板,前端下载打开的时候也用的Excel 2007

PS: 由于系统限制,暂时无法使用返回url download的方式去下载。

阅读 16.1k
3 个回答

怀疑是后端生成的excel本身就打不开。
建议后端先不要返回流给前端,直接生成excel文件放到临时目录,打开看看生成的excel是否能打开。
如果能打开,则问题就出现在传输、浏览器接收流生成excel文件时;如果打不开,就是你生成的excel本身有问题。

这个问题是后端生成excel文件本身就有问题
建议让后端拍查一下问题

问题发现了, 原来要用Object.data去构建Blob对象,之前的写法错误了。。。
正确的代码应该是:
let url = window.URL.createObjectURL(new Blob([res.data]))

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