Ottieni e imposta lo stile delle celle con C++
Cell.GetStyle
e Cell.SetStyle
. Questo articolo esamina l’approccio Cell.GetStyle
/SetStyle
per aiutarti a giudicare quale tecnica si adatta meglio a te.
Formattazione celle
Ci sono due modi per formattare una cella, illustrati di seguito.
Utilizzando GetStyle()
Con il seguente pezzo di codice, viene inizializzato un oggetto Style
per ogni cella durante la formattazione. Se molte celle vengono formattate, viene consumata una grande quantità di memoria perché l’oggetto Style
è grande. Questi oggetti Style
non verranno liberati fino a quando il metodo Workbook.Save
non viene chiamato.
C++
cell.GetStyle()->GetFont()->SetIsBold(true);
Utilizzare SetStyle()
Il primo approccio è semplice e diretto, allora perché abbiamo aggiunto il secondo approccio?
Abbiamo aggiunto il secondo approccio per ottimizzare l’uso della memoria. Dopo aver utilizzato il metodo Cell.GetStyle
per recuperare un oggetto Style
, modificalo e usalo di nuovo con il metodo Cell.SetStyle
. Questo oggetto Style
non verrà conservato, e il runtime C++ lo raccoglierà quando non sarà più referenziato.
Quando si chiama il metodo Cell.SetStyle
, l’oggetto Style
non viene salvato per ogni cella. Invece, confrontiamo questo oggetto Style
con un pool interno di oggetti Style
per vedere se può essere riutilizzato. Solo gli oggetti Style
che differiscono da quelli esistenti vengono mantenuti per ogni oggetto Workbook
. Ciò significa che ci sono solo alcune centinaia di oggetti Style
per ogni file Excel invece di migliaia. Per ogni cella, viene conservato solo un indice al pool di oggetti Style
.
C++
auto style = cell.GetStyle();
style->GetFont()->SetIsBold(true);
cell.SetStyle(style);