找回密码
 立即注册

QQ登录

只需一步,快速开始

神弟

注册会员

4

主题

11

帖子

37

积分

注册会员

积分
37
最新发帖

[已处理] 如何让函数失效

神弟
注册会员   /  发表于:2022-4-25 09:57  /   查看:2199  /  回复:5
各位大神好!现在有个问题请教大家一下,我这边自定义了好几个函数然后在Excel里面大量使用,我这边通过spread.toJSON()获取json数据保存到数据库的时候会一直大量执行函数访问后台导致服务器卡死,大家有没有什么方法在执行spread.toJSON()获取json数据的时候不执行函数而且可以获取函数,我这边想通过includeBindingSource:true,ignoreFormula:false 这两个参数来控制可是控制了函数不执行 但是不能保存函数的方法,然后通过        GC.Spread.CalcEngine.Functions.removeGlobalFunction让函数失效又没有效果,具体代码如下:
image.png63385313.png





image.png291368102.png





image.png538898314.png

5 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-4-25 10:27:11
沙发
两个方案可以试一下:1、在toJSON前,将有自定义公式的单元格通过getFormula将公式取出来单独存储,然后通过sheet.setFormula(1, 1, undefined);清除公式,在进行toJSON。需要fromJSON时,再将存储的公式通过setFormula进行设置。

2、把spread.options.calcOnDemand = true;开启。可以参考这篇文章的优化方案
https://gcdn.grapecity.com.cn/fo ... &extra=page%3D5

若仍未解决,建议提供对应的demo,这边来做进一步调研。
回复 使用道具 举报
神弟
注册会员   /  发表于:2022-4-26 09:13:54
板凳
Derrick.Jiao 发表于 2022-4-25 10:27
两个方案可以试一下:1、在toJSON前,将有自定义公式的单元格通过getFormula将公式取出来单独存储,然后通 ...

感觉还是不行,试各种方法都不行 ,就是想获取toJSON的时候不要执行函数 然后也可以正常保留公式,好把json数据保存到数据库里面
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-4-26 14:24:57
地板
神弟 发表于 2022-4-26 09:13
感觉还是不行,试各种方法都不行 ,就是想获取toJSON的时候不要执行函数 然后也可以正常保留公 ...

据我的了解,一般情况下,为了保证数据的正确性,我们会在fromJSON的时候会重算一遍。但是是否会在toJSON的时候重算,这个是需要商榷的,这部分建议提供对应的demo,我们来调研一下看下是不是fromJSON的问题。
回复 使用道具 举报
神弟
注册会员   /  发表于:2022-4-26 14:41:47
5#
Derrick.Jiao 发表于 2022-4-26 14:24
据我的了解,一般情况下,为了保证数据的正确性,我们会在fromJSON的时候会重算一遍。但是是否会在toJSON ...

好的,晚点我这边整理给你发过去
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2022-4-26 17:47:32
6#
神弟 发表于 2022-4-26 14:41
好的,晚点我这边整理给你发过去

好的,请尽量移除多余的业务逻辑提供可直接运行的demo,demo越简单,我们调研的方向以及效率就会更高。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部