空のワークシートの検出
設定済みの Cells を確認します
ワークシートには、値が単純な値 (テキスト、数値、日付/時刻)、数式、または数式ベースの値である値が入力された 1 つ以上のセルを含めることができます。このような場合、特定のワークシートが空かどうかは簡単に検出できます。私たちがチェックしなければならないのは、Cells.MaxDataRowまたCells.MaxDataColumnプロパティ。前述のプロパティが 0 または正の値を返す場合は、1 つ以上のセルが入力されていることを意味しますが、これらのプロパティのいずれかが -1 を返す場合は、指定されたワークシートにセルが入力されていないことを示します。
空の初期化済み Cells を確認します
値を持つすべてのセルは自動的に初期化されますが、ワークシートに書式設定のみが適用されたセルが含まれる可能性があります。このようなシナリオでは、Cells.MaxDataRowまたCells.MaxDataColumnプロパティは、入力された値がないことを示す -1 を返しますが、セルの書式設定のために初期化されたセルは、この方法では検出できません。ワークシートに空の初期化セルがあるかどうかを確認するには、取得した列挙子で IEnumerator.MoveNext メソッドを使用することをお勧めします。Cellsコレクション。 IEnumerator.MoveNext メソッドが返す場合真実これは、指定されたワークシートに 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"); | |
} | |
} | |
} |