搬砖小李 发表于 2023-11-7 15:04:10

【16.2.5】sheet.fromJson导入后,会报错“无效的公式”

本帖最后由 Richard.Huang 于 2024-2-23 12:01 编辑

产品:SpreadJS
版本:V16.2.5
问题编号:【SJS-21117】
LastReview:2023/12/28
该问题将在V17.0.0中修复,可以升级版本后来解决该问题

SpreadJS,从16.1.4升级到16.2.5以后,出现以下问题:
我们通过sheet.toJson导出的json数据,再通过sheet.fromJson导入后,会报错“无效的公式”,新的【归档.zip】里可以复现,index8使用16.2.5,index9使用16.1.4,旧版本不报错,新版本报错,再帮忙看一下怎么处理



Ellia.Duan 发表于 2023-11-7 15:55:19

您好,由于您提供的是一个sheet的json文件,是否可以提供下整个工作簿Spread.toJSON()之后的文件,这边根据这个文件测试下。

搬砖小李 发表于 2023-11-7 16:44:36

Ellia.Duan 发表于 2023-11-7 15:55
您好,由于您提供的是一个sheet的json文件,是否可以提供下整个工作簿Spread.toJSON()之后的文件,这边根据 ...

已重新上传【formula.zip】附件,请查收

Ellia.Duan 发表于 2023-11-7 17:44:34

本帖最后由 Ellia.Duan 于 2023-11-7 17:52 编辑

您好,您的问题已复现,我们将深入调研下此问题。待有进展,将及时联系您。

问题编号:【SJS-21117】

Ellia.Duan 发表于 2023-11-8 15:11:43

本帖最后由 Ellia.Duan 于 2023-11-8 15:13 编辑

您好,调研结果如下:



查看您的json文件,上图中您的sheet中的chart图表发现引用了其他sheet的图表内容
正常来说, 如果一个sheet包含的图表数据来源于另一个sheet, 如果仅仅是sheet.toJOSN ,而不是spread.toJSON(),那么在另一个spread中由于缺少相关数据,所以sheet.from()时,图表将不会正常显示。关于这点,您可以实际测试一下。

从这个角度来看,v16.1.4 是一个 bug,正如前面所说,如果您使用 sheet toJSON/fromJSON 克隆一个sheet,应该确保原始工作簿的源工作表中没有跨工作表内容。
因此,在 v16.1.4 中,图表应该是不可用。
但是,在 v16.2.5 中,图表确实不可用了,但是不应该抛出异常,最坏的情况是,应该将图表留空。
所以这个问题目前确认为一个bug ,我们将在之后的版本修复。本贴将移至“bug反馈区”


目前您可以在toJSON之前,将引用其他sheet数据的图表进行删除。





搬砖小李 发表于 2023-11-8 17:31:51

Ellia.Duan 发表于 2023-11-8 15:11
您好,调研结果如下:




好的了解了,:D

Ellia.Duan 发表于 2023-11-8 17:55:47

好的,您可以按照楼上给出的方案先删除相关图表。同时此问题有进展,会及时联系您。

Richard.Huang 发表于 2024-2-23 12:02:30

您可以通过npm工具升级SpreadJS版本后来解决该问题,本贴就先结贴了,后续有其他相关问题欢迎继续发帖提问
页: [1]
查看完整版本: 【16.2.5】sheet.fromJson导入后,会报错“无效的公式”