找回密码
 立即注册

QQ登录

只需一步,快速开始

白鱼

中级会员

61

主题

227

帖子

586

积分

中级会员

积分
586
白鱼
中级会员   /  发表于:2024-4-18 09:44  /   查看:4900  /  回复:14
1金币
本帖最后由 Ellia.Duan 于 2024-6-3 13:42 编辑

该测试用例中json数据是spread.toJSON()导出的,再次导入时,我们可以看到自定义函数SRCFX()的值重新计算就报错了,导入时应该可以看到原值是 宁德时代
测试用例中我添加了自定义函数,异步计算值为10000,可以看到复制该公式到其它单元格时,可以触发计算,但是fromJSON之后再重新添加自定义函数,却没有生效。

测试代码见附件,src目录是压缩文件需再次解压。


image.png241004027.png


image.png309072570.png



image.png284237975.png

demo-test.zip

50.14 KB, 下载次数: 2035

最佳答案

查看完整内容

最新调研进展:本贴中提及的问题可以在代码中添加以下代码逻辑,手动解析ssjson文件中的自定义属性: 具体这样做可以成功的原因可以参考这篇知识库文章:https://demo.grapecity.com.cn/spreadjs/help/docs/faqs/formula/custom-function/import-custom-function-invalid#%E9%97%AE%E9%A2%98%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AF%BC%E5%85%A5json%E6%96%87%E4%BB%B6%E5%90%8E%E8%87%AA%E5%AE%9A%E4%B9%89%E5%87%BD%E6%95%B0%E6% ...

14 个回复

倒序浏览
最佳答案
最佳答案
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-18 09:44:38
来自 13#
最新调研进展:本贴中提及的问题可以在代码中添加以下代码逻辑,手动解析ssjson文件中的自定义属性:
  1. GC.Spread.Sheets.getTypeFromString = function (typeStr: string) {
  2.     if (typeStr === 'mynamespace.MyFunction') {
  3.         return mynamespace.MyFunction;
  4.     }
  5. }
复制代码

image.png97646178.png
具体这样做可以成功的原因可以参考这篇知识库文章:https://demo.grapecity.com.cn/sp ... 0%E6%97%A0%E6%95%88
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-18 10:01:20
2#
您好,我在您的代码中没有找到关于自定义内容的序列化和反序列化,自定义函数建议参考这篇学习指南来实现导入导出:https://demo.grapecity.com.cn/sp ... erialization/purejs
image.png734100646.png
回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-4-18 14:15:24
3#
Richard.Huang 发表于 2024-4-18 10:01
您好,我在您的代码中没有找到关于自定义内容的序列化和反序列化,自定义函数建议参考这篇学习指南来实现导 ...

你好,我刚刚看了这个文档,只看到在自定义函数中设置一个"typeName": "CompareCompanyInputFunction" 字段,我这样设置之后,导出为json文件后已拥有该字段,但是导入之后再注册自定义函数,依然没有见到生效。是还有什么需要配置吗?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-18 16:49:38
4#
白鱼 发表于 2024-4-18 14:15
你好,我刚刚看了这个文档,只看到在自定义函数中设置一个"typeName": "CompareCompanyInputFunction" 字 ...

您好,您需要保证您导入前后的页面中都有这个自定义函数的计算逻辑,您可以将我们学习指南中的代码下载到本地进行测试,并和您的代码进行对比,看是否有缺漏
回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-4-18 18:49:17
5#
Richard.Huang 发表于 2024-4-18 16:49
您好,您需要保证您导入前后的页面中都有这个自定义函数的计算逻辑,您可以将我们学习指南中的代码下载到 ...

我这边看没有区别,你那边可以给我提供一个demo吗?导出之后再次导入计算不会变成#Name的场景?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-19 12:11:26
6#
白鱼 发表于 2024-4-18 18:49
我这边看没有区别,你那边可以给我提供一个demo吗?导出之后再次导入计算不会变成#Name的场景?

您可以参考附件的demo

features_workbook_custom-item-serialization_JavaScript.rar

2.27 KB, 下载次数: 1797

回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-4-19 16:04:56
7#
Richard.Huang 发表于 2024-4-19 12:11
您可以参考附件的demo

你好,我用你这个demo试过了,确实可以。但是你这里是通过cdn引入的包,我用了npm导入之后,所有代码都是一样的,具体请查看更新的附件文件。步骤很简单,从你给我的测试demo导出一个文件,然后两边导入看,发现你给的demo导入没问题,但是我通过npm方式引入的包就会有问题。麻烦再看下
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-19 18:18:51
8#
本帖最后由 Richard.Huang 于 2024-4-22 14:01 编辑
白鱼 发表于 2024-4-19 16:04
你好,我用你这个demo试过了,确实可以。但是你这里是通过cdn引入的包,我用了npm导入之后,所有代码都是 ...
您好,您在帖子中所描述的现象我在本地进行了重现,至于该现象的原因我们还需要进行进一步的调研定位。后续有相关调研进展我会第一时间在本贴中进行跟进。问题编号:SJS-23938
回复 使用道具 举报
白鱼
中级会员   /  发表于:2024-4-22 09:25:15
9#
Richard.Huang 发表于 2024-4-19 18:18
您好,您在帖子中所描述的现象我在本地进行了重现,至于该现象的原因我们还需要进行进一步的调研定位。后 ...

好的,感谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部