ワークシートセルにアクセス
ワークシート内のセルへのアクセス
各ワークシートには、実際にはAspose.Cells.GridWeb内のセルを表すGridCellオブジェクトのコレクションであるCellsというプロパティが含まれています。Aspose.Cells.GridWebを使用して任意のセルにアクセスすることが可能です。以下でそれぞれの推奨される方法について説明します。
セル名の使用
すべてのセルにはユニークな名称があります。たとえば、A1、A2、B1、B2などです。Aspose.Cells.GridWebでは、セル名(インデックスとして)をCellsコレクションに渡すことで、任意のセルにアクセスすることができます。
注意
cells[cellName]を使用してGridCellにアクセスすると、より多くのメモリを消費してしまう場合があります。セルがnullであっても新しいセル(GridCell)オブジェクトが常に作成されます。
行と列のインデックスを使用する
セルは行と列のインデックスによっても識別できます。セルの行と列のインデックスをCellsコレクションに渡すだけで、任意のセルにアクセスできます。この方法は、上記の方法よりも高速です。
ベストプラクティス:
セルの値やセルのスタイルを取得し、更新操作を行いたくない場合は、存在しないセルの場合はnullを返すCheckCellメソッドを使用することができます。これによりメモリが節約できます。
GridCells cells = GridWeb1.ActiveSheet.Cells;
GridCell cell = cells.CheckCell(1, 1);
if(cell!=null)
{
Console.WriteLine(cell.ToString());
}
ベストプラクティス:
セルを反復処理する
ワークシート内のすべてのセルに1つずつアクセスしたい場合は、反復子を使用して存在するセルをトラバースできます。 これによりメモリが節約されます。
GridCells cells = GridWeb1.ActiveSheet.Cells;
foreach (GridCell c in cells)
{
Console.WriteLine(c.ToString());
}
以下のコードを比較してください、これは悪い方法です。 これにより、nullであるかどうかに関係なくすべてのセルオブジェクトが作成されるため、メモリの問題が発生します。 したがって、この方法は使用しないでください。
GridCells cells = GridWeb1.ActiveSheet.Cells;
for(int r=0;r< cells.MaxRow;r++)
{
for(int c=0;c< cells.MaxColumn; c++)
{
Console.WriteLine(cells[r,c].ToString());
}
}