Stil für Zellen abrufen und festlegen

Formatierung Cells

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

Verwenden von GetStyle()

Mit dem folgenden Codeteil wird beim Formatieren für jede Zelle ein Style-Objekt initiiert. Wenn sehr viele Zellen formatiert werden, wird viel 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;

Verwenden von SetStyle()

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

Wir haben den zweiten Ansatz hinzugefügt, um die Speichernutzung zu optimieren. Nachdem Sie mit der Methode Cell.GetStyle ein Style-Objekt abgerufen haben, ändern Sie es und setzen Sie es mit der Methode Cell.SetStyle wieder auf diese Zelle zurück. Dieses Style-Objekt wird nicht beibehalten und von GC erfasst, wenn nicht darauf verwiesen wird.

Beim Aufruf der Methode Cell.SetStyle wird das Style-Objekt nicht für jede Zelle gespeichert. Stattdessen vergleichen wir dieses Style-Objekt mit einem internen Style-Objektpool, um zu sehen, ob es wiederverwendet werden kann. Für jedes Workbook-Objekt werden nur Style-Objekte beibehalten, die sich von den vorhandenen unterscheiden. Das bedeutet, dass es für jede Excel-Datei nur mehrere Hundert statt Tausender Style-Objekte gibt. Für jede Zelle bleibt nur ein Index zum Style-Objektpool erhalten.

C#

Style style = cell.GetStyle();

style.Font.IsBold = true;

cell.SetStyle(style);

Vorabthemen