Обнаружение пустых рабочих листов

Проверка заполненных ячеек

На листах могут быть одна или несколько ячеек, заполненных значениями: простыми (текст, числовыми, датой/временем) или формулой или значением, основанным на формуле. В таком случае легко определить, пуст ли данный лист или нет. Все, что нам нужно проверить, это свойства Cells.max_data_row или Cells.max_data_column. Если вышеупомянутые свойства возвращают ноль или положительные значения, это означает, что одна или несколько ячеек заполнены, однако если какое-либо из этих свойств возвращает -1, это указывает на то, что ни одна из ячеек не заполнена на указанном листе.

Проверка пустых инициализированных ячеек

Все ячейки, содержащие значения, автоматически инициализируются, однако возможно, что в листе есть ячейки только с форматированием. В таком случае свойства Cells.max_data_row или Cells.max_data_column вернут -1, что указывает на отсутствие заполненных значений, но инициализированные ячейки из-за форматирования выявить с помощью этого метода невозможно. Чтобы проверить, есть ли в листе пустые инициализированные ячейки, рекомендуется использовать метод IEnumerator.MoveNext для перечислителя, полученного из коллекции Cells. Если метод возвращает true, значит в листе есть одна или более инициализированных ячеек.

Проверка фигур

Возможно, что заданный лист не содержит заполненных ячеек, однако он может содержать фигуры и объекты, такие как контроли, графики, изображения и так далее. Если необходимо проверить, содержит ли лист фигуры, можно сделать это, проверяя элементы ShapeCollection. Любое положительное значение указывает на наличие фигуры(-уров) в листе.

Пример программирования

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