Skip to content
目录

公式引擎

公式引擎相对独立:词法/语法 → AST → 依赖图 → 按拓扑求值,可在 Web Worker 中跑重计算,主线程只收结果 MUTATION。


1. 流水线

阶段输出
LexerToken 流
Parser / AST表达式树
Dependency引用关系(A1、区域、跨表)
Interpreter标量或数组结果
写回通过 MUTATION 更新单元格

2. 函数系统

  • 内置函数库(数学、文本、查找等)可扩展。
  • 自定义函数通过插件注册,与 Excel 语义尽量对齐(具体以版本文档为准)。

3. 依赖与重算

  • 单元格变更 → 标记下游依赖脏 → 增量重算,非全表重算。
  • 循环引用检测与错误值(#REF! 等)由引擎统一处理。

4. Worker 与主线程

主线程Worker
交互、渲染大批量公式重算
发计算任务返回结果 + 变更集

避免主线程长时间阻塞导致掉帧。


5. 与协同

公式结果最终以 MUTATION 形式同步;冲突策略与普通过单元格一致(见 07)。


6. 总结

公式 = 独立计算子系统;扩展时注册函数 + 保证依赖分析能识别新引用形式。

MIT License.