セルのスタイルを取得および設定する

フォーマット中 Cells

以下に示すように、セルを書式設定するには 2 つの方法があります。

GetStyle() の使用

次のコードでは、書式設定時にセルごとに Style オブジェクトが開始されます。多数のセルを書式設定すると、Style オブジェクトが大きいため、大量のメモリが消費されます。これらの Style オブジェクトは、Workbook.Save メソッドが呼び出されるまで解放されません。

C#

cell.GetStyle().Font.IsBold = true;

SetStyle() の使用

最初のアプローチは簡単で単純ですが、なぜ 2 番目のアプローチを追加したのでしょうか?

メモリ使用量を最適化するための 2 番目のアプローチを追加しました。 Cell.GetStyle メソッドを使用して Style オブジェクトを取得した後、それを変更し、Cell.SetStyle メソッドを使用してそれをこのセルに設定し直します。この Style オブジェクトは保持されず、参照されていない場合は .NET GC によって収集されます。

Cell.SetStyle メソッドを呼び出すとき、Style オブジェクトはセルごとに保存されません。代わりに、この Style オブジェクトを内部の Style オブジェクト プールと比較して、再利用できるかどうかを確認します。各 Workbook オブジェクトには、既存のものと異なる Style オブジェクトのみが保持されます。これは、各 Excel ファイルに Style オブジェクトが数千ではなく数百しか存在しないことを意味します。各セルについては、スタイル オブジェクト プールへのインデックスのみが保存されます。

C#

Style style = cell.GetStyle();

style.Font.IsBold = true;

cell.SetStyle(style);

アドバンストトピック