空のワークシートの検出

設定済みの 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");
}
}
}