Détection de feuilles de calcul vides

Vérifier les cellules peuplées

Les feuilles de calcul peuvent avoir une ou plusieurs cellules peuplées de valeurs où une valeur peut être simple (texte, numérique, date/heure) ou une formule ou une valeur basée sur une formule. Dans ce cas, il est facile de détecter si une feuille de calcul donnée est vide ou non. Il suffit de vérifier les propriétés Cells.max_data_row ou Cells.max_data_column. Si les propriétés mentionnées retournent zéro ou des valeurs positives, cela signifie qu’une ou plusieurs cellules ont été peuplées, cependant, si l’une de ces propriétés retourne -1, cela indique que aucune des cellules n’a été peuplée dans la feuille de calcul donnée.

Vérifier les cellules initialisées vides

Toutes les cellules contenant des valeurs sont initialisées automatiquement, cependant il est possible qu’une feuille ait des cellules uniquement formatées. Dans ce cas, les propriétés Cells.max_data_row ou Cells.max_data_column renverront -1, indiquant l’absence de valeurs remplies, mais les cellules initialisées en raison du format de cellule ne peuvent pas être détectées avec cette approche. Pour vérifier si une feuille a des cellules initialisées vides, il est conseillé d’utiliser la méthode IEnumerator.MoveNext sur l’énumérateur acquis de la collection Cells. Si la méthode IEnumerator.MoveNext retourne true, cela signifie qu’il y a une ou plusieurs cellules initialisées dans la feuille donnée.

Vérifier les formes

Il est possible qu’une feuille donnée ne contienne aucune cellule remplie, mais qu’elle puisse contenir des formes et objets tels que des contrôles, graphiques, images, etc. Si nous devons vérifier si une feuille contient des formes, nous pouvons le faire en inspectant les éléments ShapeCollection. Toute valeur positive indique la présence de formes dans la feuille.

Exemple de programmation

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(".")
# Create an instance of Workbook and load an existing spreadsheet
book = Workbook(dataDir + "sample.xlsx")
# Loop over all worksheets in the workbook
for i in range(len(book.worksheets)):
sheet = book.worksheets[i]
# Check if worksheet has populated cells
if sheet.cells.max_data_row != -1:
print(sheet.name + " is not empty because one or more cells are populated")
else:
if len(sheet.shapes) > 0:
print(sheet.name + " is not empty because there are one or more shapes")
else:
range = sheet.cells.max_display_range
rangeIterator = range.get_enumerator()
if rangeIterator.__next__():
print(sheet.name + " is not empty because one or more cells are initialized")