Prédécesseurs et dépendants

Introduction

  • Cellules précédentes sont des cellules auxquelles une formule d’une autre cellule fait référence. Par exemple, si la cellule D10 contient la formule =B5, la cellule B5 est une cellule précédente de la cellule D10.
  • Cellules dépendantes contiennent des formules qui font référence à d’autres cellules. Par exemple, si la cellule D10 contient la formule =B5, la cellule D10 est dépendante de la cellule B5.

Pour rendre la feuille de calcul facile à lire, vous voudrez peut-être clairement indiquer quelles cellules d’une feuille de calcul sont utilisées dans une formule. De même, vous voudrez peut-être extraire les cellules dépendantes d’autres cellules.

Aspose.Cells pour Python via .NET vous permet de suivre des cellules et de découvrir lesquelles sont liées.

Tracer les cellules précédentes et dépendantes : Microsoft Excel

Les formules peuvent changer en fonction des modifications apportées par un client. Par exemple, si la cellule C1 dépend de C3 et C4 contenant une formule, et que C1 est modifiée (la formule étant remplacée), C3 et C4, ou d’autres cellules, doivent changer pour équilibrer la feuille de calcul en fonction des règles métier.

De même, supposons que C1 contient la formule “=(B122)/(M2N32)”. Je veux trouver les cellules dont C1 dépend, c’est-à-dire les cellules précédentes B1, M2 et N32.

Il se peut que vous deviez retracer la dépendance d’une cellule particulière à d’autres cellules. Si des règles métier sont intégrées dans des formules, nous aimerions connaître la dépendance et exécuter certaines règles en fonction de celle-ci. De même, si la valeur d’une cellule particulière est modifiée, quelles cellules dans la feuille de calcul sont impactées par ce changement ?

Microsoft Excel permet aux utilisateurs de tracer les cellules précédentes et dépendantes.

  1. Sur la Barre d’outils Affichage, sélectionnez Audit des formules. La boîte de dialogue Audit des formules s’affichera.
  2. Tracer les cellules précédentes :
    1. Sélectionnez la cellule contenant la formule pour laquelle vous souhaitez trouver les cellules précédentes.
    2. Pour afficher une flèche de traçage vers chaque cellule qui fournit directement des données à la cellule active, cliquez sur Tracer les cellules précédentes sur la Barre d’outils Audit de formules.
  3. Tracer les formules qui référencent une cellule particulière (dépendantes)
    1. Sélectionnez la cellule pour laquelle vous souhaitez identifier les cellules dépendantes.
    2. Pour afficher une flèche de traçage vers chaque cellule qui dépend de la cellule active, cliquez sur Traçage des dépendances sur la barre d’outils d’Audit de formules.

Suivi des cellules précédentes et dépendantes : Aspose.Cells pour Python via .NET

Tracer les cellules précédentes

Aspose.Cells pour Python via .NET facilite la récupération des cellules précédentes. Il peut non seulement récupérer les cellules fournissant des données aux formules simples, mais aussi identifier celles alimentant des formules complexes avec des plages nommées.

Dans l’exemple ci-dessous, un fichier excel modèle, Book1.xls, est utilisé. La feuille de calcul contient des données et des formules sur la première feuille de calcul.

Aspose.Cells pour Python via .NET offre la méthode Cell utilisable pour tracer les précédents d’une cellule. Elle retourne un ReferredAreaCollection. Comme illustré ci-dessus, dans Book1.xls, la cellule B7 contient la formule “=SUM(A1:A3)”. Ainsi, A1:A3 sont les cellules précédentes de B7. L’exemple suivant démontre cette fonction en utilisant le fichier modèle 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))

Tracé des dépendances

Aspose.Cells pour Python via .NET permet d’obtenir les cellules dépendantes d’un classeur. Il peut non seulement récupérer les cellules fournissant des données à une formule simple, mais aussi identifier celles alimentant des formules complexes avec des plages nommées.

Aspose.Cells pour Python via .NET fournit la méthode Cell utilisable pour tracer les dépendants d’une cellule. Par exemple, dans Book1.xlsx, il y a des formules : “=A1+20” et “=A1+30” dans les cellules B2 et C2 respectivement. L’exemple ci-dessous montre comment tracer ces dépendants de la cellule A1 en utilisant le fichier modèle Book1.xlsx.

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)

Tracer les cellules précédentes et dépendantes selon la chaîne de calcul

Les APIs ci-dessus pour tracer les précédents et dépendants sont basées sur l’expression de formule elle-même. Elles offrent simplement un moyen pratique pour l’utilisateur de suivre les interdépendances pour quelques formules. Si le classeur contient un grand nombre de formules et que l’utilisateur a besoin de suivre les précédents et dépendants pour chaque cellule, la performance sera faible. Dans ce cas, il devrait envisager d’utiliser get_precedents_in_calculation et get_dependents_in_calculation. Ces deux méthodes suivent les dépendances selon la chaîne de calcul. Pour l’utiliser, il faut d’abord activer la chaîne de calcul via Workbook.settings.formula_settings.enable_calculation_chain. Ensuite, effectuer un calcul complet du classeur avec Workbook.calculate_formula(). Après cela, vous pouvez suivre les précédents ou dépendants pour toutes ces cellules.

Pour certaines formules, les précédents résultants peuvent être différents pour GetPrecedents et GetPrecedentsInCalculation, et les dépendants résultants peuvent être différents pour GetDependents et GetDependentsInCalculation. Par exemple, si la formule de la cellule A1 est “=IF(TRUE,B2,C3)”, GetPrecedents fournira B2 et C3 comme précédents de A1. En conséquence, B2 et C3 ont tous deux la dépendance A1 lorsqu’on utilise GetDependents. Cependant, pour le calcul de cette formule, il est évident que seule B2 peut affecter le résultat calculé. Ainsi, GetPrecedentsInCalculation ne fournira pas C3 pour A1, et GetDependentsInCalculation ne fournira pas A1 pour C3. Parfois, l’utilisateur peut simplement avoir besoin de tracer ces interdépendances qui affectent réellement le résultat calculé des formules en fonction des données actuelles du classeur, alors ils doivent aussi utiliser GetDependentsInCalculation/GetPrecedentsInCalculation au lieu de GetDependents/GetPrecedents.

L’exemple suivant montre comment tracer les précédents et les dépendants selon la chaîne de calcul pour les cellules:

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)