AbstractCalculationMonitor

AbstractCalculationMonitor class

监控用户跟踪公式计算的进度。

public abstract class AbstractCalculationMonitor

特性

姓名描述
CalculatedValue { get; }获取单元格的新计算值。 应该只用于AfterCalculate.
OriginalValue { get; }获取计算单元格的旧值。 应该只用于BeforeCalculateAfterCalculate.
ValueChanged { get; }计算后单元格的值是否发生变化。 应该只用于AfterCalculate.

方法

姓名描述
virtual AfterCalculate(int, int, int)计算一个单元格后执行此方法进行业务。
virtual BeforeCalculate(int, int, int)实现这个方法先做生意再计算一个cell。
virtual OnCircular(IEnumerator)在计算循环引用的公式时实现这个方法做生意。

例子

[C#]
//自定义监视器以检查 StackOverflowException 的可能性
public class MyCalculationMonitor : AbstractCalculationMonitor
{
    public override void BeforeCalculate(int sheetIndex, int rowIndex, int colIndex)
    {
        if(new StackTrace(false).FrameCount > 1000)
        {
            throw new Exception("Stop the formula calculation because risk of StackOverflowException");
        }
    }
}

也可以看看