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 formula. In tal caso, è facile individuare se un determinato foglio di lavoro è vuoto o meno. Tutto ciò che dobbiamo fare è controllare le proprietà Cells.max_data_row o Cells.max_data_column. Se le proprietà suddette restituiscono zero o valori positivi ciò significa che una o più celle sono state popolate, tuttavia, se una qualsiasi di queste proprietà restituisce -1 ciò indica che nessuna delle celle è stata popolata nel foglio di lavoro fornito.
Controllare le celle inizializzate vuote
Tutte le celle che hanno valori vengono automaticamente inizializzate, tuttavia, c’è la possibilità che un foglio di lavoro abbia celle con sola formattazione applicata. In tal caso, le proprietà Cells.max_data_row o Cells.max_data_column restituiranno -1 indicando l’assenza di valori popolati, ma le celle inizializzate a causa della formattazione delle celle non possono essere rilevate con questo approccio. Per verificare se un foglio di lavoro contiene celle vuote inizializzate, si consiglia di usare il metodo IEnumerator.MoveNext sull’iteratore acquisito dalla collezione Cells. Se il metodo IEnumerator.MoveNext restituisce true, significa che ci sono una o più celle inizializzate nel foglio di lavoro dato.
Controllare le forme
È possibile che un dato foglio di lavoro non abbia celle popolate, tuttavia, può contenere forme e oggetti come controlli, grafici, immagini e così via. Se abbiamo bisogno di verificare se un foglio di lavoro contiene forme, possiamo farlo ispezionando gli elementi ShapeCollection. Un valore positivo indica la presenza di forma(e) nel foglio di lavoro.
Esempio di programmazione
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") |