Erkennen leerer Arbeitsblätter

Überprüfung auf belegte Zellen

Arbeitsblätter können eine oder mehrere Zellen enthalten, die Werte enthalten, wobei ein Wert einfach (Text, numerisch, Datum/Uhrzeit) oder eine Formel oder ein formelbasierter Wert sein kann. In einem solchen Fall ist es einfach zu erkennen, ob ein gegebenes Arbeitsblatt leer ist oder nicht. Alles, was wir überprüfen müssen, sind die Cells.max_data_row oder Cells.max_data_column Eigenschaften. Wenn die oben genannten Eigenschaften Null oder positive Werte zurückgeben, bedeutet dies, dass eine oder mehr Zellen gefüllt wurden. Wenn jedoch eine dieser Eigenschaften -1 zurückgibt, bedeutet dies, dass keine der Zellen im angegebenen Arbeitsblatt gefüllt wurde.

Überprüfung auf leere initialisierte Zellen

Alle Zellen, die Werte enthalten, werden automatisch initialisiert, allerdings besteht die Möglichkeit, dass ein Arbeitsblatt Zellen nur mit Formatierungen enthält. In einem solchen Szenario geben die Cells.max_data_row oder Cells.max_data_column-Eigenschaften -1 zurück, was auf das Fehlen von gefüllten Werten hinweist. Inititalisierte Zellen aufgrund der Zellformatierung können jedoch mit diesem Ansatz nicht erkannt werden. Um zu überprüfen, ob ein Arbeitsblatt leere initialisierte Zellen enthält, empfiehlt es sich, die IEnumerator.MoveNext-Methode auf dem Enumerator zu verwenden, der aus der Cells-Sammlung gewonnen wurde. Wenn die IEnumerator.MoveNext-Methode true zurückgibt, bedeutet dies, dass sich in dem Arbeitsblatt eine oder mehrere initialisierte Zellen befinden.

Überprüfung auf Formen

Es ist möglich, dass ein bestimmtes Arbeitsblatt keine gefüllten Zellen enthält, es kann jedoch Formen & Objekte wie Steuerelemente, Diagramme, Bilder usw. enthalten. Wenn wir überprüfen möchten, ob ein Arbeitsblatt irgendwelche Formen enthält, können wir dies durch Inspektion der ShapeCollection-Elemente tun. Jede positive Zahl zeigt das Vorhandensein von Formen im Arbeitsblatt an.

Programmierbeispiel

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")