检测循环参考

介绍

工作簿可以有循环引用,有时需要检测是否存在循环引用。

检测循环引用背后的概念

循环引用只有在计算公式时才能检测到,因为一个公式的引用通常依赖于其他部分或其他公式的计算结果。因此我们在公式计算过程中针对这一需求(收集具有循环引用的单元格)提供了新的API:

计算单元格:代表计算正在计算的某个cell的相关数据

AbstractCalculationMonitor.OnCircular(IEnumeratorcircularCellsData):遇到循环引用时会被公式计算引擎调用,枚举器中的元素为计算单元格代表一圈中所有细胞的对象。返回值表示公式引擎是否需要在调用后循环计算这些单元格。

用户可以在实现时收集这些循环引用AbstractCalculationMonitor.OnCircular()方法。

源示例文件可以从以下链接下载:

循环公式.xls

的定义圆形监视器派生自的类抽象计算监视器类如下: