空のワークシートを検出する
空の初期化されたセルのチェック
ワークシートには、値が入力されたセルが1つ以上含まれることがあります。値は単純なもの(テキスト、数値、日付/時刻)または式、または式に基づく値であることがあります。このような場合、与えられたワークシートが空かどうかを検出するのは簡単です。確認する必要があるのはCells.MaxDataRowまたはCells.MaxDataColumnプロパティだけです。前述のプロパティがゼロまたは正の値を返す場合、1つ以上のセルが入力されていることを意味し、これらのプロパティのいずれかが-1を返す場合、与えられたワークシートにセルが入力されていないことを示します。
空の初期化されたセルのチェック
値が入力されたすべてのセルは自動的に初期化されますが、ワークシートにはフォーマットのみが適用されたセルがある可能性があります。このようなシナリオでは、Cells.MaxDataRowまたはCells.MaxDataColumnプロパティは-1を返し、入力値は存在しないがセルの初期化が行われていることが検出できません。ワークシートに空の初期化されたセルがあるかどうかを確認するには、Cellsコレクションから取得したイテレーターに対してIterator.hasNext メソッドを使用することをお勧めします。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"); | |
} | |
} | |
} |