ワークシート内のGridCellにアクセスする
ワークシートのセルにアクセスする
Aspose.Cells.GridDesktopのAPIを使用して、ワークシートの任意のセルにアクセスすることができます。セルにアクセスする方法として、次の3つの可能な方法があります:
- セル名を使用する
- 行および列のインデックスを使用する
- フォーカスを当てるセルの取得
以上の3つのアプローチについて、1つずつ議論しましょう。
セル名の使用
ワークシート内のすべてのセルにはユニークな名前があります。 たとえば、A1、A2、B1、B2などです。 Aspose.Cells.GridDesktopを使用すると、開発者はセルの名前を使用して任意のセルにアクセスできます。 セルの名前(インデックスとして)をWorksheetのCellsコレクションに渡すだけで済みます。
注意
cells[cellName]を使用してGridCellにアクセスすると、より多くのメモリを消費してしまう場合があります。セルがnullであっても新しいセル(GridCell)オブジェクトが常に作成されます。
セルの行および列のインデックスを使用する
ベストプラクティス:
セルの値やセルのスタイルを取得し、更新操作を行いたくない場合は、存在しないセルの場合はnullを返すCheckCellメソッドを使用することができます。これによりメモリが節約できます。
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
// 行および列のインデックスを使用してセルにアクセスする
GridCell cell = sheet.Cells.CheckCell(1, 1);
if(cell!=null)
{
Console.WriteLine(cell.ToString());
}
ワークシート内のセルは、その行および列のインデックスによっても識別できます。 セルの行および列のインデックスをWorksheetのCellsコレクションに渡すだけで済みます。
注意
cells[rowIndex, columnIndex]を使用してGridCellにアクセスすると、より多くのメモリを消費する可能性があります。 セルがnullであるかどうかに関係なく、新しいセル(GridCell)オブジェクトを常に作成します。
フォーカスを当てるセルの取得
正確にどのセルにアクセスするか分からない場合は、Aspose.Cells.GridDesktopを使用して、ユーザーのフォーカスが当たっているセルにアクセスすることもできます。 この機能を使用すると、ユーザーが任意のセルを選択し、それをバックエンドでアクセスすることができます。 これは単にWorksheetのGetFocusedCellメソッドを使用することで簡単に実現できます。
ベストプラクティス:
セルを反復処理する
ワークシート内のすべてのセルに1つずつアクセスしたい場合は、反復子を使用して存在するセルをトラバースできます。 これによりメモリが節約されます。
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
GridCells cells = sheet.Cells;
foreach (GridCell c in cells)
{
Console.WriteLine(c.ToString());
}
以下のコードを比較してください、これは悪い方法です。 これにより、nullであるかどうかに関係なくすべてのセルオブジェクトが作成されるため、メモリの問題が発生します。 したがって、この方法は使用しないでください。
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
for(int r=0;r< sheet.RowsCount;r++)
{
for(int c=0;c< sheet.ColumnsCount; c++)
{
Console.WriteLine(sheet.Cells[r,c].ToString());
}
}