Holen und Setzen von Stil für Zellen

Formatierung von Zellen

Es gibt zwei Möglichkeiten, eine Zelle zu formatieren, wie unten dargestellt.

Mit GetStyle() verwenden

Mit dem folgenden Code wird ein Style-Objekt für jede Zelle initiiert, wenn sie formatiert wird. Wenn viele Zellen formatiert werden, wird eine große Menge an Speicher verbraucht, da das Style-Objekt ein großes Objekt ist. Diese Style-Objekte werden erst freigegeben, wenn die Workbook.Save-Methode aufgerufen wird.

C#

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

Mit SetStyle() verwenden

Der erste Ansatz ist einfach und unkompliziert, warum haben wir also den zweiten Ansatz hinzugefügt?

Wir haben den zweiten Ansatz hinzugefügt, um den Speicherverbrauch zu optimieren. Nach Verwendung der Cell.GetStyle-Methode zum Abrufen eines Style-Objekts, ändern Sie es und verwenden Sie die Cell.SetStyle-Methode, um es wieder auf diese Zelle zu setzen. Dieses Style-Objekt wird nicht erhalten und .NET GC sammelt es ein, wenn es nicht referenziert wird.

Beim Aufrufen der Cell.SetStyle-Methode wird das Style-Objekt nicht für jede Zelle gespeichert. Stattdessen vergleichen wir dieses Style-Objekt mit einem internen Style-Objektpool, um festzustellen, ob es wiederverwendet werden kann. Nur Style-Objekte, die sich von den vorhandenen unterscheiden, werden für jedes Workbook-Objekt behalten. Dies bedeutet, dass es für jede Excel-Datei nur einige hundert Style-Objekte gibt, anstelle von Tausenden. Für jede Zelle wird nur ein Index zum Style-Objektpool erhalten.

C#

Style style = cell.GetStyle();

style.Font.IsBold = true;

cell.SetStyle(style);

Erweiterte Themen