Holen und Setzen von Stil für Zellen

Formatierung von Zellen

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

Verwendung von getStyle()

Mit folgendem Code wird für jede Zelle beim Formatieren ein Style-Objekt initialisiert. Wenn viele Zellen formatiert werden, verbraucht dies viel Speicher, da das Style-Objekt groß ist. Diese Style-Objekte werden erst freigegeben, wenn die Methode Workbook.save aufgerufen wird.

JavaScript

cell.getStyle().getFont().setIsBold(true);

Verwendung 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 den Speicherverbrauch zu optimieren. Nach Verwendung der Cell.getStyle-Methode, um ein Style-Objekt abzurufen, dieses zu modifizieren und mit der Cell.setStyle-Methode wieder auf die Zelle zu setzen. Dieses Style-Objekt wird nicht gespeichert und der JavaScript-Garbage-Collector wird es sammeln, wenn es nicht mehr 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-Pool, um festzustellen, ob es wiederverwendet werden kann. Nur Style-Objekte, die sich von den vorhandenen unterscheiden, werden für jede Arbeitsmappe beibehalten. Das bedeutet, dass es nur einige hundert Style-Objekte pro Excel-Datei gibt, anstatt Tausende. Für jede Zelle wird nur ein Index zum Style-Pool gespeichert.

JavaScript

let style = cell.getStyle();

style.getFont().setIsBold(true);

cell.setStyle(style);

Erweiterte Themen