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

Вступление

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

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

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

Расчетная ячейка: Представляет вычисление релевантных данных об одной вычисляемой ячейке.

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

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

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

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

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