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 un tel 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.MaxDataRow ou Cells.MaxDataColumn. Si les propriétés mentionnées ci-dessus renvoient des valeurs zéro ou positives, cela signifie qu’une ou plusieurs cellules ont été peuplées, cependant, si l’une de ces propriétés renvoie -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 qui ont des valeurs sont automatiquement initialisées, cependant, il est possible qu’une feuille de calcul ait des cellules avec seulement une mise en forme appliquée. Dans un tel scénario, les propriétés Cells.MaxDataRow ou Cells.MaxDataColumn renverront -1 indiquant l’absence de valeurs peuplées mais des cellules initialisées en raison de la mise en forme de la cellule ne peuvent pas être détectées en utilisant cette méthode. Afin de vérifier si une feuille de calcul a des cellules initialisées vides, il est conseillé d’utiliser la méthode Iterator.hasNext sur l’itérateur acquis à partir de la collection de cellules. Si la méthode iterator.hasNext renvoie true, cela signifie qu’il y a une ou plusieurs cellules initialisées dans la feuille de calcul donnée.

Vérifier les formes

Il est possible qu’une feuille de calcul donnée n’ait pas de cellules peuplées, cependant, elle pourrait contenir des formes et des objets tels que des contrôles, des graphiques, des images, etc. Si nous devons vérifier si une feuille de calcul contient une forme, nous pouvons le faire en inspectant la propriété ShapeCollection.Count. Toute valeur positive indique la présence de forme(s) dans la feuille de calcul.

Exemple de programmation

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(CheckForShapes.class) + "TechnicalArticles/";
// Create an instance of Workbook and load an existing spreadsheet
Workbook workbook = new Workbook(dataDir + "SampleCheckCells.xlsx");
// Loop over all worksheets in the workbook
for (int i = 0; i < workbook.getWorksheets().getCount(); i++) {
Worksheet worksheet = workbook.getWorksheets().get(i);
// Check if worksheet has populated cells
if (worksheet.getCells().getMaxDataRow() != -1) {
System.out.println(worksheet.getName() + " is not empty because one or more cells are populated");
}
// Check if worksheet has shapes
else if (worksheet.getShapes().getCount() > 0) {
System.out.println(worksheet.getName() + " is not empty because there are one or more shapes");
}
// Check if worksheet has empty initialized cells
else {
Range range = worksheet.getCells().getMaxDisplayRange();
Iterator rangeIterator = range.iterator();
if (rangeIterator.hasNext()) {
System.out.println(worksheet.getName() + " is not empty because one or more cells are initialized");
} else {
System.out.println(worksheet.getName() + " is empty");
}
}
}