空のワークシートを検出する
空の初期化されたセルのチェック
ワークシートには、値が入力された1つ以上のセルがある場合があります。値は単純なもの(テキスト、数値、日付/時刻)または式または式に基づく値であることがあります。そのような場合、指定されたワークシートが空かどうかを検出することは簡単です。確認する必要があるのは、Cells.max_data_rowまたはCells.max_data_columnプロパティのみです。上記のプロパティがゼロまたは正の値を返す場合、1つ以上のセルが埋められていることを意味します。ただし、これらのプロパティのいずれかが-1を返す場合、指定されたワークシートにセルが1つも埋められていないことを示します。
空の初期化されたセルのチェック
値を持つセルは自動的に初期化されますが、ワークシートに書式だけが適用されたセルが存在する可能性もあります。その場合、Cells.max_data_rowまたはCells.max_data_columnプロパティは-1を返し、値が設定されていないことを示します。ただし、セルの書式設定により初期化されたセルも検出できないため、ワークシートに空の初期化されたセルがあるかどうかを確認するには、Cellsコレクションから取得した列挙子のIEnumerator.MoveNextメソッドを使用してください。このメソッドがtrueを返す場合、そのワークシートには1つ以上の初期化されたセルが存在します。
図形のチェック
特定のワークシートに値が設定されていない場合でも、コントロールやチャート、画像などのシェイプやオブジェクトが含まれている可能性があります。ワークシートにシェイプが含まれているかどうかを確認するには、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") |