找回密码
 立即注册

QQ登录

只需一步,快速开始

Dtttax

高级会员

237

主题

577

帖子

1862

积分

高级会员

积分
1862
Dtttax
高级会员   /  发表于:2021-3-31 14:20  /   查看:4652  /  回复:16
10金币
修改一个单元格的值,如果别的单元格有公式引用了这个单元格,公式对应的单元格值会跟着变化。我们要获取修改一个单元格引起的所有发生变化的单元格列表,包括跨表单的,有没有相关api可以用

16 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-3-31 14:49:02
沙发
您好,可以用公式追踪实现
具体请参考下方链接帖子:
https://gcdn.grapecity.com.cn/showtopic-80485-1-5.html
回复 使用道具 举报
Dtttax
高级会员   /  发表于:2021-3-31 14:54:40
板凳
lynn512 发表于 2021-3-31 14:49
您好,可以用公式追踪实现
具体请参考下方链接帖子:
https://gcdn.grapecity.com.cn/showtopic-80485-1- ...

sheet.getDependents并不能查到所有的单元格,只是直接引用,间接引用和跨表单的不能查到
回复 使用道具 举报
Dtttax
高级会员   /  发表于:2021-3-31 15:09:35
地板
lynn512 发表于 2021-3-31 14:49
您好,可以用公式追踪实现
具体请参考下方链接帖子:
https://gcdn.grapecity.com.cn/showtopic-80485-1- ...

罢了,我自己递归找吧
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-3-31 15:29:41
5#
本帖最后由 lynn512 于 2021-3-31 15:43 编辑

脏数据也可以监听到,不过也是在表单内可以监听,跨表单是否能监听到还需要您自行测试下,具体请参考附件demo。
你也可以监听表单valueChanged事件,当单元格值变动时,手动获取目标sheet公式单元格的值。
如果以上方法均不符合您的需求,这边也没有更好的建议了。
这边已向研发提相关需求,如果需求通过将会在后续版本中添加此功能。


脏数据监听公式单元格值变动.zip

9.89 MB, 下载次数: 76

回复 使用道具 举报
Dtttax
高级会员   /  发表于:2021-4-14 11:35:57
6#
lynn512 发表于 2021-3-31 15:29
脏数据也可以监听到,不过也是在表单内可以监听,跨表单是否能监听到还需要您自行测试下,具体请参考附件de ...

通过递归,可以找到所有受影响的单元格,但无法确定这些单元格的是有没有真的发生了改变,如公式为if(A1>0,'xxx','ccc'),A1的值不发生正负数切换的时候,这个单元格的值是不会发生变化的,如何筛选出真正有值变化的单元格?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-4-14 11:43:40
7#
以下是我的理解:
您通过递归找到了所有与公式相关的所有单元格(间接引用、跨表单引用),
“A1的值不发生正负数切换的时候,这个单元格的值是不会发生变化的”
您想咨询的是,如何监听A1的值变化吗?
可以通过监听 ValueChanged 事件,来监听单元格(非公式)的value变动。
API: https://demo.grapecity.com.cn/sp ... #event:ValueChanged
回复 使用道具 举报
Dtttax
高级会员   /  发表于:2021-4-14 11:50:35
8#
lynn512 发表于 2021-4-14 11:43
以下是我的理解:
您通过递归找到了所有与公式相关的所有单元格(间接引用、跨表单引用),
“A1的值不发 ...

监听事件不行的,你看下场景,现在我改了一个单元格的值,这个单元格有很多dependents,需求是标记出这次修改影响到的单元格,用valuechange怎么做?
回复 使用道具 举报
Dtttax
高级会员   /  发表于:2021-4-14 11:52:42
9#
lynn512 发表于 2021-4-14 11:43
以下是我的理解:
您通过递归找到了所有与公式相关的所有单元格(间接引用、跨表单引用),
“A1的值不发 ...

或者你的意思是在一个单元格的valuechange中查另一个单元格的valuechange状态?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-4-14 12:27:40
10#
“现在我改了一个单元格的值,这个单元格有很多dependents,需求是标记出这次修改影响到的单元格”
您通过递归查找到了与公式相关的所有单元格。
只要这些单元格值变动,公式值就会变动。
所以监听ValueChanged 事件,判断这些单元格发生了改变时,也就间接的表示公式值变动了,
以此达到监听公式值变动的效果。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部