找回密码
 立即注册

QQ登录

只需一步,快速开始

gcTrialUp

金牌服务用户

5

主题

9

帖子

42

积分

金牌服务用户

积分
42
gcTrialUp
金牌服务用户   /  发表于:2021-9-1 10:50  /   查看:1971  /  回复:5
1金币
目前是通过api获取后台excel的二进制流文件,然后在前端转成Blob后用ExcelIO.IO.open()导入,但是会报Incorrect file format

excel的二进制可以通过postman保存成excel(也就是说后台api应该没有问题),response的header部分信息如下:

Content-Type:application/octet-stream;charset=UTF-8Content-Disposition: attachment;20210831_16_59_02.xlsx


前端转成blob相关代码:
const blob = new Blob([res], { type: 'application/octet-stream;charset=UTF-8' })
其中res是通过接口获取的二进制流。



目前想问的是解决方案或者debug方案

image.png994108581.png

最佳答案

查看完整内容

您好,我们这边有一个前后端的解决方案,您可以参考 https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=90503 在加载后端的流时指定responseType 另外,出现错误的文件格式还有可能是Spread对象没有正确获取,请确认Spread对象是否正确获取。若仍未解决您的问题,麻烦您提供一个能复现问题可运行的demo,这边调研一下。

5 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-1 10:50:37
来自 2#
您好,我们这边有一个前后端的解决方案,您可以参考
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=90503
在加载后端的流时指定responseType
image.png55650938.png

另外,出现错误的文件格式还有可能是Spread对象没有正确获取,请确认Spread对象是否正确获取。若仍未解决您的问题,麻烦您提供一个能复现问题可运行的demo,这边调研一下。
回复 使用道具 举报
gcTrialUp
金牌服务用户   /  发表于:2021-9-2 10:03:30
3#
已解决,前端使用了mock会使axios的responseType即使设置了'blob'也会被强制改为空。
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-2 10:07:18
4#
gcTrialUp 发表于 2021-9-2 10:03
已解决,前端使用了mock会使axios的responseType即使设置了'blob'也会被强制改为空。

解决了就好,有新问题欢迎开新帖交流~
回复 使用道具 举报
songpeng
金牌服务用户   /  发表于:2021-9-2 14:22:10
5#
看到这个,同事也解决了我的问题
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-2 14:23:16
6#
songpeng 发表于 2021-9-2 14:22
看到这个,同事也解决了我的问题

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部