Rilevamento di fogli di lavoro vuoti

Controllare le celle popolate

I fogli di lavoro possono avere una o più celle popolate con valori in cui un valore può essere semplice (testo, numerico, data/ora) o una formula o un valore basato su una formula. In tal caso, è facile rilevare se un dato foglio di lavoro è vuoto o meno. Tutto ciò che dobbiamo controllare sono le proprietà Cells.MaxDataRow o Cells.MaxDataColumn. Se le suddette proprietà restituiscono zero o valori positivi, ciò significa che una o più celle sono state popolate, tuttavia, se una qualsiasi di queste proprieta restituisce -1, ciò indica che nessuna delle celle è stata popolata nel dato foglio di lavoro.

Controllare le celle inizializzate vuote

Tutte le celle con valori vengono automaticamente inizializzate, tuttavia, c’è la possibilità che un foglio di lavoro abbia celle con solo formattazione applicata. In uno scenario del genere, le proprietà Cells.MaxDataRow o Cells.MaxDataColumn restituiranno -1 indicando l’assenza di valori popolati ma le celle inizializzate a causa della formattazione delle celle non possono essere rilevate tramite questo approccio. Per verificare se un foglio di lavoro ha celle inizializzate vuote, è consigliabile utilizzare il metodo Iterator.hasNext sull’iteratore acquisito dalla collezione Cells. Se il metodo iterator.hasNext restituisce true, ciò significa che ci sono una o più celle inizializzate nel dato foglio di lavoro.

Controllare le forme

È possibile che un dato foglio di lavoro non abbia alcune celle popolate, tuttavia, potrebbe contenere forme e oggetti come controlli, grafici, immagini e così via. Se è necessario verificare se un foglio di lavoro contiene qualche forma, è possibile farlo ispezionando la proprietà ShapeCollection.Count. Qualsiasi valore positivo indica la presenza di forma(e) nel foglio di lavoro.

Esempio di programmazione

// 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");
}
}
}