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

セルの書式設定

セルの書式設定には2つの方法があります。以下に示します。

GetStyle()を使用する

次のコードを使用して、各セルの書式設定時にStyleオブジェクトが初期化されます。多くのセルが書式設定されている場合、Styleオブジェクトは大きいため、大量のメモリが消費されます。これらのStyleオブジェクトはWorkbook.Saveメソッドが呼び出されるまで解放されません。

C#

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

SetStyle()を使用する

最初の方法は簡単で直感的ですが、なぜ2つ目の方法を追加したのでしょうか?

メモリ使用量を最適化するために2つ目の方法を追加しました。セル.GetStyleメソッドを使用してStyleオブジェクトを取得し、それを変更してセルに戻す際にセル.SetStyleメソッドを使用します。このStyleオブジェクトは保存されず、それが参照されない場合に.NET GCがそれを収集します。

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

C#

Style style = cell.GetStyle();

style.Font.IsBold = true;

cell.SetStyle(style);

高度なトピック