空のワークシートを検出する
空の初期化されたセルのチェック
ワークシートには、値が入力された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") |