Обнаружение циклической ссылки

Введение

В книгах могут быть циклические ссылки, и иногда необходимо определить, есть ли циклические ссылки или нет.

Концепция обнаружения циклической ссылки

Циклические ссылки можно обнаружить только при вычислении формулы, поскольку ссылки одной формулы обычно зависят от вычисленного результата других частей или других формул. Поэтому мы предоставляем новые API для этого требования (для сбора ячеек с циклическими ссылками) в процессе вычисления формулы:

РасчетЯчейка: представляет расчет соответствующих данных об одной вычисляемой ячейке.

AbstractCalculationMonitor.OnCircular (IEnumeratorcircularCellsData): будет вызываться механизмом вычисления формул при обнаружении циклических ссылок, элемент в перечислителеРасчетЯчейка объекты, которые представляют все ячейки в одном круге. Возвращаемое значение указывает, нужно ли обработчику формул вычислять эти ячейки по кругу после этого вызова.

Пользователь может собирать эти циклические ссылки при реализацииAbstractCalculationMonitor.OnCircular() метод.

Исходный файл примера можно скачать по следующей ссылке:

Круговые формулы.xls

ЗначениеКруговойМонитор класс, который является производным отАннотацияРасчетМонитор класс следующий: