Rilevamento di fogli di lavoro vuoti
Controlla Popolato Cells
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 determinato foglio di lavoro è vuoto o meno. Tutto quello che dobbiamo controllare è ilCells.MaxDataRow oCells.MaxDataColumnproprietà. Se le suddette proprietà restituiscono valori zero o positivi, significa che una o più celle sono state popolate, tuttavia, se una di queste proprietà restituisce -1 che indica che nessuna delle celle è stata popolata nel foglio di lavoro specificato.
Verificare la presenza di vuoto inizializzato Cells
Tutte le celle che hanno valori vengono inizializzate automaticamente, tuttavia, esiste la possibilità che un foglio di lavoro abbia celle con solo la formattazione applicata. In uno scenario del genere, ilCells.MaxDataRowoCells.MaxDataColumn properties restituirà -1 che indica l’assenza di valori popolati ma le celle inizializzate a causa della formattazione delle celle non possono essere rilevate utilizzando questo approccio. Per verificare se un foglio di lavoro ha celle inizializzate vuote, si consiglia di utilizzare il metodo IEnumerator.MoveNext sull’enumeratore acquisito daCells collezione. Se il metodo IEnumerator.MoveNext restituisceVERO ciò significa che ci sono una o più celle inizializzate nel foglio di lavoro specificato.
Controlla le forme
È possibile che un determinato foglio di lavoro non contenga celle popolate, tuttavia potrebbe contenere forme e oggetti come controlli, grafici, immagini e così via. Se dobbiamo verificare se un foglio di lavoro contiene una forma, possiamo farlo ispezionando il fileShapeCollection.Countproprietà. Qualsiasi valore positivo indica la presenza di forme nel foglio di lavoro.
Esempio di programmazione
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create an instance of Workbook and load an existing spreadsheet | |
var book = new Workbook(dataDir + "sample.xlsx"); | |
// Loop over all worksheets in the workbook | |
for (int i = 0; i < book.Worksheets.Count; i++) | |
{ | |
Worksheet sheet = book.Worksheets[i]; | |
// Check if worksheet has populated cells | |
if (sheet.Cells.MaxDataRow != -1) | |
{ | |
Console.WriteLine(sheet.Name + " is not empty because one or more cells are populated"); | |
} | |
// Check if worksheet has shapes | |
else if (sheet.Shapes.Count > 0) | |
{ | |
Console.WriteLine(sheet.Name + " is not empty because there are one or more shapes"); | |
} | |
// Check if worksheet has empty initialized cells | |
else | |
{ | |
Aspose.Cells.Range range = sheet.Cells.MaxDisplayRange; | |
var rangeIterator = range.GetEnumerator(); | |
if (rangeIterator.MoveNext()) | |
{ | |
Console.WriteLine(sheet.Name + " is not empty because one or more cells are initialized"); | |
} | |
} | |
} |