找回密码
 立即注册

QQ登录

只需一步,快速开始

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证

超级版主

123

主题

8927

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13532

讲师达人悬赏达人元老葡萄SpreadJS 认证SpreadJS 高级认证微信认证勋章

dexteryao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-2 10:55  /   查看:1835  /  回复:0


•支撑复杂逻辑运算的计算引擎

公式字串生成公式表达式

表达式树及构建计算链



首先要做的是词法分析,将公式按照运算符,符号等内容分解为字符串数组
image.png532946471.png
下一步,根据优先级,将字符串数组组装形成表达式树。

表达式树的生成,是后续构建计算依赖链的关键。

image.png163630065.png
通过递归调用来计算表达式树
生成表达式树的同时,并构建依赖关系,统计入度
这里的计算连,是一种图的数据结构。
通过图的遍历算法解决以上问题

有当数据发生变化时,那么就会沿着这条依赖链,查找依赖节点并进行重算,这个过程中,没有在依赖链中的节点是不会发生重算动作的,也就是我们所说的脏值运算。
这样就解决了单元格相互依赖重算的问题。

image.png426780089.png

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部