dexteryao 发表于 2021-10-14 14:43:40

解决SpreadJS导入导出Excel文件提示’文件格式错误‘异常

本帖最后由 dexteryao 于 2021-10-14 14:43 编辑

SpreadJS支持导入导出xlsx版本的Excel文件,通过使用ExcelIO组件可将Excel文件转换成SpreadJS的ssjson。
具体可参考:https://demo.grapecity.com.cn/sp ... mport-export/purejs

Excel的open 和 save方法都包含四个参数,‘文件格式错误’的错误信息就是从第三个参数的错误回调中获取到的。


当出现了’文件格式错误‘,我们按照如下步骤排查问题
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不存在,单步执行时直接进入失败回调。

    b. 开启浏览器异常暂停功能
开启后,try 中的异常也会被捕获到直接抛出,这样就知道是哪里的问题了。



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

suoer 发表于 2022-5-25 11:03:45

发现在给单元格增加comment备注之后,导出Excel文件会报错提示‘文件格式错误’

Richard.Ma 发表于 2022-5-25 14:05:59

请上传您这边导出excel前导出的ssjson文件,我帮你看一下问题原因
页: [1]
查看完整版本: 解决SpreadJS导入导出Excel文件提示’文件格式错误‘异常