找回密码
 立即注册

QQ登录

只需一步,快速开始

前端小蚂蚁
注册会员   /  发表于:2023-6-14 13:39  /   查看:3548  /  回复:17
2金币
使用excelIO.open()这个api方法加载excel, 报文件格式错误提示,实际表格在其他地方是可以打开的,是什么原因呢?
问题很紧急,项目赶进度,希望大神能速指点!








使用的是这个方法:
var workbook = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));var excelIO = new GC.Spread.Excel.IO();var excelFile = document.getElementById("fileDemo").files[0];excelIO.open(excelFile, function (json) {   workbook.fromJSON(json);}, function (e) {   console.log(e); //  文件格式错误}, {   password: "password",   importPictureAsFloatingObject: false});

最佳答案

查看完整内容

您好,这边查了一下,在open函数中做的所有操作,如果出现了异常,都会报“文件格式错误”。 如果无法提供Demo的话,那麻烦您提供一下您导入的Excel文件,我们这边再测试一下看看是不是Excel文件的问题。 如果能正常导入,不是Excel的问题的话,那应该就是在open函数中有代码导致了一场。

17 个回复

倒序浏览
最佳答案
最佳答案
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-14 13:39:04
来自 12#
前端小蚂蚁 发表于 2023-6-14 17:06
我这个是项目,我怎么给你呢,你也跑不起来,要安装各种环境,我怎么给你

您好,这边查了一下,在open函数中做的所有操作,如果出现了异常,都会报“文件格式错误”。

如果无法提供Demo的话,那麻烦您提供一下您导入的Excel文件,我们这边再测试一下看看是不是Excel文件的问题。

如果能正常导入,不是Excel的问题的话,那应该就是在open函数中有代码导致了一场。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-14 14:21:38
2#
您好,请问您导入的Excel文件类型是xlsx还是xls呢?
回复 使用道具 举报
前端小蚂蚁
注册会员   /  发表于:2023-6-14 15:17:16
3#
文件类型是xlsx的
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-14 15:50:23
4#
您好,请您检查下是否引入了FileSaver文件,如下图:

image.png129701537.png

如果确认引入后问题仍然存在,请您将您的Demo提供一下,这边调查一下看看是什么原因导致的。
回复 使用道具 举报
前端小蚂蚁
注册会员   /  发表于:2023-6-14 15:58:57
5#
你说得文件FileSavers是看项目里是否引用吗?
回复 使用道具 举报
前端小蚂蚁
注册会员   /  发表于:2023-6-14 16:01:28
6#
看了没有引用这个FileSaver文件
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-6-14 16:17:01
7#
前端小蚂蚁 发表于 2023-6-14 16:01
看了没有引用这个FileSaver文件

您好,是的,需要在项目中引用,没有引用的话那可能就是这个原因导致的,您这边引入后再看一下问题是否还存在。

file-saver包链接:https://www.npmjs.com/package/file-saver
回复 使用道具 举报
前端小蚂蚁
注册会员   /  发表于:2023-6-14 16:28:03
8#
Joestar.Xu 发表于 2023-6-14 16:17
您好,是的,需要在项目中引用,没有引用的话那可能就是这个原因导致的,您这边引入后再看一下问题是否还 ...

我是用npm 安装到项目中,怎么和excel使用呢
回复 使用道具 举报
前端小蚂蚁
注册会员   /  发表于:2023-6-14 16:52:58
9#
// 这是项目中加载excel的代码块,在这个文件里引用file-saver,然后在这里使用吗?怎么用的
loadExcel = () => {
    let excelFile = this.props.planExcel as Blob;  // 二进制流数据,excel数据
    console.log('=====',excelFile)
    let excelIo = new IO();
    excelIo.open(
      excelFile,
      (json: JSON) => {
        const spread = new GC.Spread.Sheets.Workbook(null);
        this.spread = spread
        // this.handleExternalReference(json)
        this.fillInitData(json)
        spread.fromJSON(adjustBigRangeInJSON(json))
        this.initSpread(spread)
      },
      (e) =>{
        message.error(e.errorMessage);  // 这里报文件格式错误
        this.loading.destroy();
      },
    );
  };
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部