空のワークシートの検出
設定済みの 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"); | |
} | |
} | |
} |