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, jedoch ist es möglich, dass ein Arbeitsblatt Zellen enthält, auf die nur Formatierungen angewendet wurden. In einem solchen Szenario geben die Eigenschaften Cells.max_data_row oder Cells.max_data_column -1 zurück, was auf die Abwesenheit von bevölkerten Werten hinweist, aber initialisierte Zellen aufgrund der Zellformatierung mit diesem Ansatz nicht erkannt werden können. Um zu überprüfen, ob ein Arbeitsblatt leere initialisierte Zellen enthält, wird empfohlen, die IEnumerator.MoveNext-Methode auf dem Enumerator aus der Cells-Sammlung zu verwenden. Wenn die IEnumerator.MoveNext-Methode true zurückgibt, bedeutet dies, dass es eine oder mehrere initialisierte Zellen im angegebenen Arbeitsblatt gibt.

Überprüfung auf Formen

Es ist möglich, dass ein bestimmtes Arbeitsblatt keine bevölkerten Zellen enthält, jedoch Formen und Objekte wie Steuerelemente, Diagramme, Bilder usw. enthält. Wenn wir überprüfen müssen, ob ein Arbeitsblatt eine Form enthält, können wir dies tun, indem wir die ShapeCollection-Elemente inspizieren. Ein positiver Wert 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")