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