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.MaxDataRow o Cells.MaxDataColumn. 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 inizializzate automaticamente, tuttavia, c’è la possibilità che un foglio di lavoro abbia celle con solo la 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 individuate utilizzando questo approccio. Per verificare se un foglio di lavoro ha celle vuote inizializzate, si consiglia di utilizzare il metodo IEnumerator.MoveNext sull’enumeratore acquisito dalla raccolta Cells. Se il metodo IEnumerator.MoveNext restituisce true ciò significa che ci sono una o più celle inizializzate nel foglio di lavoro fornito.

Controllare le forme

È possibile che un determinato foglio di lavoro non abbia celle popolate, tuttavia potrebbe contenere forme e oggetti come elementi di controllo, grafici, immagini e così via. Se abbiamo bisogno di verificare se un foglio di lavoro contiene una qualsiasi forma, possiamo farlo ispezionando la proprietà ShapeCollection.Count. Qualsiasi valore positivo indica la presenza di una o più 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");
}
}
}