Vorgänger und Abhängige
Einführung
- Vorgängerzellen sind Zellen, auf die in einer anderen Zelle eine Formel verweist. Wenn beispielsweise Zelle D10 die Formel =B5 enthält, dann ist die Zelle B5 ein Vorgänger von Zelle D10.
- Abhängige Zellen enthalten Formeln, die auf andere Zellen verweisen. Wenn beispielsweise die Zelle D10 die Formel =B5 enthält, ist die Zelle D10 von der Zelle B5 abhängig.
Um die Tabelle übersichtlicher zu gestalten, möchten Sie möglicherweise klar zeigen, welche Zellen in einer Tabelle in einer Formel verwendet werden. Ebenso möchten Sie die abhängigen Zellen anderer Zellen extrahieren.
Aspose.Cells für Python via .NET erlaubt es, Zellen nachzuverfolgen und herauszufinden, welche verlinkt sind.
Vorgänger- und Abhängige Zellen verfolgen: Microsoft Excel
Formeln können sich ändern, basierend auf Änderungen, die von einem Kunden vorgenommen wurden. Wenn beispielsweise die Zelle C1 von C3 und C4 abhängt, die eine Formel enthalten, und C1 geändert wird (d. h. die Formel überschrieben wird), müssen C3 und C4 oder andere Zellen entsprechend den Geschäftsregeln angepasst werden, um die Tabelle auszugleichen.
Ebenso angenommen, C1 enthält die Formel “=(B122)/(M2N32)”. Ich möchte die Zellen finden, von denen C1 abhängt, d. h. die vorhergehenden Zellen B1, M2 und N32.
Sie müssen möglicherweise die Abhängigkeit einer bestimmten Zelle zu anderen Zellen verfolgen. Wenn Geschäftsregeln in Formeln eingebettet sind, möchten wir die Abhängigkeit herausfinden und einige Regeln entsprechend ausführen. Ebenso, wenn der Wert einer bestimmten Zelle geändert wird, welche Zellen im Arbeitsblatt sind von dieser Änderung betroffen?
Microsoft Excel ermöglicht es Benutzern, Vorgänger und Abhängige zu verfolgen.
- Auf der Ansichts-Symbolleiste wählen Sie Formelüberwachung aus. Der Dialog zur Formelüberwachung wird angezeigt.
- Vorgänger verfolgen:
- Wählen Sie die Zelle aus, die die Formel enthält, für die Sie Vorgängerzellen finden möchten.
- Um an jede Zelle einen Tracer-Pfeil anzuzeigen, die direkt Daten an die aktive Zelle bereitstellt, klicken Sie auf Vorgänger verfolgen auf der Formelüberwachungs-Symbolleiste.
- Formeln verfolgen, die auf eine bestimmte Zelle verweisen (Abhängige)
- Wählen Sie die Zelle aus, für die Sie die abhängigen Zellen identifizieren möchten.
- Um an jede Zelle, die von der aktiven Zelle abhängig ist, einen Tracer-Pfeil anzuzeigen, klicken Sie auf Abhängige verfolgen auf der Formelüberwachungs-Symbolleiste.
Nachverfolgung von Voraussetzungs- und Abhängigen Zellen: Aspose.Cells für Python via .NET
Vorgänger verfolgen
Aspose.Cells für Python via .NET macht es einfach, Voraussetzungszellen zu erhalten. Es kann nicht nur Zellen abrufen, die Daten für einfache Formelveorlagen liefern, sondern auch Zellen finden, die Daten für komplexe Formelvoraussetzungen mit benannten Bereichen liefern.
Im folgenden Beispiel wird eine Vorlagen-Excel-Datei, Book1.xls, verwendet. Das Arbeitsblatt enthält Daten und Formeln.
Aspose.Cells für Python via .NET bietet die Cell-Klasse mit der get_precedents-Methode, um die Vorgängerzellen einer Zelle nachzuverfolgen. Diese gibt einen ReferredAreaCollection zurück. Wie oben gezeigt, enthält in Book1.xls die Zelle B7 eine Formel “=SUM(A1:A3)”. Die Zellen A1:A3 sind also die Vorgängerzellen von Zelle B7. Das folgende Beispiel zeigt die Funktion zum Nachverfolgen von Vorgängern anhand der Vorlage Book1.xls.
from aspose.cells import CellsHelper, Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
workbook = Workbook(dataDir + "Book1.xlsx") | |
cells = workbook.worksheets[0].cells | |
cell = cells.get("B4") | |
ret = cell.get_precedents() | |
area = ret[0] | |
print(area.sheet_name) | |
print(CellsHelper.cell_index_to_name(area.start_row, area.start_column)) | |
print(CellsHelper.cell_index_to_name(area.end_row, area.end_column)) |
Abhängige verfolgen
Aspose.Cells für Python via .NET ermöglicht es, abhängige Zellen in Tabellenkalkulationen zu erhalten. Aspose.Cells für Python via .NET kann nicht nur Zellen abrufen, die Daten zu einer einfachen Formel liefern, sondern auch Zellen finden, die Daten für komplexe Formelabhängige mit benannten Bereichen liefern.
Aspose.Cells für Python via .NET stellt die Cell-Klasse bereit mit der get_dependents-Methode, um die abhängigen Zellen einer Zelle zu verfolgen. Zum Beispiel gibt es in Book1.xlsx die Formeln: “=A1+20” und “=A1+30” in den Zellen B2 und C2. Das folgende Beispiel zeigt, wie man die abhängigen Zellen für die A1-Zelle anhand der Vorlage Book1.xlsx verfolgt.
from aspose.cells import Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
workbook = Workbook(dataDir + "Book1.xlsx") | |
cells = workbook.worksheets[0].cells | |
cell = cells.get("B2") | |
ret = cell.get_dependents(True) | |
for c in cell.get_dependents(True): | |
print(c.name) |
Nachverfolgung von Vorgänger- und abhängigen Zellen gemäß der Berechnungskette
Oben angegebene APIs zum Nachverfolgen von Vorgängern und Abhängigkeiten basieren auf dem Formel-Ausdruck selbst. Sie bieten eine bequeme Möglichkeit für den Benutzer, Interabhängigkeiten bei einigen Formeln nachzuverfolgen. Wenn im Arbeitsbuch eine große Anzahl von Formeln vorhanden ist und der Benutzer Vorgänger und Abhängige für jede Zelle nachverfolgen muss, liefern sie eine schlechte Leistung. Für solche Situationen sollten Benutzer die get_precedents_in_calculation- und get_dependents_in_calculation-Methoden in Betracht ziehen. Diese beiden Methoden verfolgen Abhängigkeiten basierend auf der Berechnungskette. Daher müssen Sie sie aktivieren, indem Sie zuerst die Workbook.settings.formula_settings.enable_calculation_chain-Methode für die Berechnungskette aktivieren. Dann sollten Sie das Arbeitsbuch vollständig berechnen mit Workbook.calculate_formula(). Danach können Sie Vorgänger oder Abhängige für alle Zellen, die Sie benötigen, verfolgen.
Für einige Formeln können die resultierenden Vorgänger bei GetPrecedents und GetPrecedentsInCalculation unterschiedlich sein, und die resultierenden Abhängigen bei GetDependents und GetDependentsInCalculation können unterschiedlich sein. Wenn z.B. die Formel von Zelle A1 “=IF(TRUE,B2,C3)” ist, liefert GetPrecedents B2 und C3 als Vorgänger von A1. Demnach haben sowohl B2 als auch C3 die abhängige Zelle A1 bei der Überprüfung durch GetDependents. Für die Berechnung dieser Formel ist jedoch offensichtlich, dass nur B2 das berechnete Ergebnis beeinflussen kann. Daher gibt GetPrecedentsInCalculation A1 nicht für C3 zurück, und GetDependentsInCalculation gibt C3 nicht für A1 zurück. Manchmal hat der Benutzer möglicherweise nur die Anforderung, die interdependencies zu verfolgen, die tatsächlich das berechnete Ergebnis der Formeln basierend auf den aktuellen Daten der Arbeitsmappe beeinflussen, dann sollten sie auch GetDependentsInCalculation/GetPrecedentsInCalculation anstelle von GetDependents/GetPrecedents verwenden.
Das folgende Beispiel zeigt, wie Sie die Präzedenzfälle und Dependenzen gemäß der Berechnungskette für Zellen verfolgen können:
from aspose.cells import Workbook | |
workbook = Workbook() | |
cells = workbook.worksheets[0].cells | |
cells.get("A1").formula = "=B1+SUM(B1:B10)+[Book1.xls]Sheet1!B2" | |
cells.get("A2").formula = "=IF(TRUE,B2,B1)" | |
workbook.settings.formula_settings.enable_calculation_chain = True | |
workbook.calculate_formula() | |
en = cells.get("B1").get_dependents_in_calculation(False) | |
print("B1's calculation dependents:") | |
for c in en: | |
print(c.name) | |
en = cells.get("B2").get_dependents_in_calculation(False) | |
print("B2's calculation dependents:") | |
for c in en: | |
print(c.name) | |
en = cells.get("A1").get_precedents_in_calculation() | |
print("A1's calculation precedents:") | |
for r in en: | |
print(r) | |
en = cells.get("A2").get_precedents_in_calculation() | |
print("A2's calculation precedents:") | |
for r in en: | |
print(r) |