空のワークシートを検出する

空の初期化されたセルのチェック

ワークシートには、値が入力された1つ以上のセルがある場合があります。値は単純なもの(テキスト、数値、日付/時刻)または式または式に基づく値であることがあります。そのような場合、指定されたワークシートが空かどうかを検出することは簡単です。確認する必要があるのは、Cells.max_data_rowまたはCells.max_data_columnプロパティのみです。上記のプロパティがゼロまたは正の値を返す場合、1つ以上のセルが埋められていることを意味します。ただし、これらのプロパティのいずれかが-1を返す場合、指定されたワークシートにセルが1つも埋められていないことを示します。

空の初期化されたセルのチェック

値を持つすべてのセルは自動的に初期化されますが、ワークシートには書式のみが適用されたセルが含まれる可能性があります。そのようなシナリオでは、「Cells.max_data_row」または「Cells.max_data_column」プロパティが-1を返す可能性があります。これは、何らかの初期化された値がないことを示します。ただし、これにより初期化された空のセルは検出できません。「Cells」コレクションから取得した列挙子を使用してIEnumerator.MoveNextメソッドを確認することで、ワークシートに空の初期化されたセルがあるかどうかを確認できます。

図形のチェック

特定のワークシートには、初期化されたセルが含まれていない可能性がありますが、コントロール、チャート、画像などのオブジェクトが含まれている可能性があります。ワークシートに形状が含まれているかどうかを確認する必要がある場合は、「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")