Erkennung von zirkulären Verweisen

Einführung

Arbeitsmappen können zirkuläre Verweise enthalten, und manchmal besteht die Notwendigkeit festzustellen, ob zirkuläre Verweise vorliegen oder nicht.

Konzept zur Erkennung des zirkulären Verweises

Zirkuläre Verweise können nur erkannt werden, wenn die Formel berechnet wird, da die Verweise einer Formel in der Regel vom berechneten Ergebnis anderer Teile oder anderer Formeln abhängen. Daher stellen wir neue APIs für diese Anforderung bereit (zum Sammeln von Zellen mit zirkulären Verweisen) im Prozess der Formelberechnung:

CalculationCell: Stellt die Berechnung relevanter Daten über eine berechnete Zelle dar

AbstractCalculationMonitor.OnCircular(IEnumerator circularCellsData): wird vom Formelberechnungsmotor aufgerufen, wenn zirkuläre Verweise auftreten, das Element im Enumerator ist CalculationCell Objekte, die alle Zellen in einem Kreis darstellen. Der zurückgegebene Wert gibt an, ob der Formelmotor diese Zellen nach diesem Aufruf in der Kreisberechnung berechnen muss.

Benutzer können diese zirkulären Verweise bei der Implementierung der Methode AbstractCalculationMonitor.OnCircular() sammeln.

Die Quellbeispieldatei kann unter folgendem Link heruntergeladen werden:

Circular Formulas.xls

Definition der CircularMonitor Klasse, die von der AbstractCalculationMonitor-Klasse abgeleitet ist, lautet wie folgt: