空のワークシートの検出

設定済みの Cells を確認します

ワークシートには、値が単純な値 (テキスト、数値、日付/時刻)、数式、または数式ベースの値である値が入力された 1 つ以上のセルを含めることができます。このような場合、特定のワークシートが空かどうかは簡単に検出できます。私たちがチェックしなければならないのは、Cells.MaxDataRowまたCells.MaxDataColumnプロパティ。前述のプロパティがゼロまたは正の値を返す場合は、1 つ以上のセルが入力されていることを意味しますが、これらのプロパティのいずれかが -1 を返す場合は、指定されたワークシートにセルが入力されていないことを示します。

空の初期化済み Cells を確認します

値を持つすべてのセルは自動的に初期化されますが、ワークシートに書式設定のみが適用されたセルが含まれる可能性があります。このようなシナリオでは、Cells.MaxDataRowまたCells.MaxDataColumnプロパティは、入力された値がないことを示す -1 を返しますが、セルの書式設定のために初期化されたセルは、この方法では検出できません。ワークシートに空の初期化セルがあるかどうかを確認するには、Iterator.hasNext Cells コレクションから取得した iterator のメソッド。もしiterator.hasNextメソッドが true を返す場合、これは、指定されたワークシートに 1 つ以上の初期化されたセルがあることを意味します。

形状の確認

特定のワークシートにセルが入力されていない可能性がありますが、コントロール、チャート、画像などの図形やオブジェクトが含まれている可能性があります。ワークシートに形状が含まれているかどうかを確認する必要がある場合は、ShapeCollection.Count財産。正の値は、ワークシートに図形が存在することを示します。

プログラミングサンプル

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(CheckForShapes.class) + "TechnicalArticles/";
// Create an instance of Workbook and load an existing spreadsheet
Workbook workbook = new Workbook(dataDir + "SampleCheckCells.xlsx");
// Loop over all worksheets in the workbook
for (int i = 0; i < workbook.getWorksheets().getCount(); i++) {
Worksheet worksheet = workbook.getWorksheets().get(i);
// Check if worksheet has populated cells
if (worksheet.getCells().getMaxDataRow() != -1) {
System.out.println(worksheet.getName() + " is not empty because one or more cells are populated");
}
// Check if worksheet has shapes
else if (worksheet.getShapes().getCount() > 0) {
System.out.println(worksheet.getName() + " is not empty because there are one or more shapes");
}
// Check if worksheet has empty initialized cells
else {
Range range = worksheet.getCells().getMaxDisplayRange();
Iterator rangeIterator = range.iterator();
if (rangeIterator.hasNext()) {
System.out.println(worksheet.getName() + " is not empty because one or more cells are initialized");
} else {
System.out.println(worksheet.getName() + " is empty");
}
}
}