找回密码
 立即注册

QQ登录

只需一步,快速开始

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证

超级版主

123

主题

8927

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13532

讲师达人悬赏达人元老葡萄SpreadJS 认证SpreadJS 高级认证微信认证勋章

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-14 14:43  /   查看:2865  /  回复:2
本帖最后由 dexteryao 于 2021-10-14 14:43 编辑

SpreadJS支持导入导出xlsx版本的Excel文件,通过使用ExcelIO组件可将Excel文件转换成SpreadJS的ssjson。
具体可参考:https://demo.grapecity.com.cn/sp ... mport-export/purejs
image.png149007262.png
Excel的opensave方法都包含四个参数,‘文件格式错误’的错误信息就是从第三个参数的错误回调中获取到的。
image.png942354736.png
image.png332064208.png
当出现了’文件格式错误‘,我们按照如下步骤排查问题
1. 导入Excel时,确定Excel格式
     SpreadJS支持xlsx格式的Excel文件,老版本的xls是不支持的,通过改文件后缀的方式并不能改变文件的存储格式,如果是xls的文件,需要使用Excel应用另存为xlsx的文件再导入
2. 导出Excel时,确定是否引用了FileSaver.js第三方资源包
    导出的成功回调中的saveAs方法就是这个包的方法,如果有用框架,需要通过import的方式引入
3. 判断成功回调中是否有代码异常
     由于JavaScript是单线程,成功回调中执行的代码也是excelIO逻辑的一部分,如果这里的代码出了一场,也会被excelIO内部catch,然后通过失败回调提示。由于被catch这里的异常经常被忽视。
     调试方法有两种:
     a. 成功回调中打断点,如果进入断点则说明,Excel IO的open和save逻辑已经完成,异常肯定在后面,继续调试即可。
如下图中,成功进入成功回调,并且Excel文件的blob已经生成,但是由于s.s不存在,单步执行时直接进入失败回调。
image.png882594604.png
    b. 开启浏览器异常暂停功能
开启后,try 中的异常也会被捕获到直接抛出,这样就知道是哪里的问题了。
image.png642708129.png


如果以上三种都不是,那就说明的确是文件的问题了,将发生异常的文件提交我们技术顾问来协助你。

2 个回复

倒序浏览
suoer
注册会员   /  发表于:2022-5-25 11:03:45
沙发
发现在给单元格增加comment备注之后,导出Excel文件会报错提示‘文件格式错误’
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-5-25 14:05:59
板凳
请上传您这边导出excel前导出的ssjson文件,我帮你看一下问题原因
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部