空のワークシートを検出する
空の初期化されたセルのチェック
ワークシートには、値が入力された1つ以上のセルがある場合があります。値は単純なもの(テキスト、数値、日付/時刻)または式または式に基づく値であることがあります。そのような場合、指定されたワークシートが空かどうかを検出することは簡単です。確認する必要があるのは、Cells.MaxDataRowまたはCells.MaxDataColumnプロパティのみです。上記のプロパティがゼロまたは正の値を返す場合、1つ以上のセルが埋められていることを意味します。ただし、これらのプロパティのいずれかが-1を返す場合、指定されたワークシートにセルが1つも埋められていないことを示します。
空の初期化されたセルのチェック
値が入力されたセルは自動的に初期化されますが、ワークシートには書式のみが適用されたセルが存在する可能性があります。このようなシナリオでは、Cells.MaxDataRowまたはCells.MaxDataColumnプロパティは-1を返すため、値は入力されていないものの初期化されたセルが検出されません。指定されたワークシートに空の初期化されたセルがあるかどうかを確認するには、Cells コレクションから取得した列挙子上でIEnumerator.MoveNextメソッドを使用することが推奨されています。IEnumerator.MoveNextメソッドがtrueを返す場合、指定されたワークシートに1つ以上の初期化されたセルが存在することを示します。
図形のチェック
指定されたワークシートに値が入力されたセルがない場合でも、コントロール、グラフ、画像などの形状やオブジェクトが含まれている可能性があります。ワークシートに形状が含まれているかどうかを確認するには、ShapeCollection.Countプロパティを検査することができます。プラスの値が入力されている場合、ワークシートに形状が存在することを示します。
プログラミングサンプル
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create an instance of Workbook and load an existing spreadsheet | |
var book = new Workbook(dataDir + "sample.xlsx"); | |
// Loop over all worksheets in the workbook | |
for (int i = 0; i < book.Worksheets.Count; i++) | |
{ | |
Worksheet sheet = book.Worksheets[i]; | |
// Check if worksheet has populated cells | |
if (sheet.Cells.MaxDataRow != -1) | |
{ | |
Console.WriteLine(sheet.Name + " is not empty because one or more cells are populated"); | |
} | |
// Check if worksheet has shapes | |
else if (sheet.Shapes.Count > 0) | |
{ | |
Console.WriteLine(sheet.Name + " is not empty because there are one or more shapes"); | |
} | |
// Check if worksheet has empty initialized cells | |
else | |
{ | |
Aspose.Cells.Range range = sheet.Cells.MaxDisplayRange; | |
var rangeIterator = range.GetEnumerator(); | |
if (rangeIterator.MoveNext()) | |
{ | |
Console.WriteLine(sheet.Name + " is not empty because one or more cells are initialized"); | |
} | |
} | |
} |