Ottieni e imposta lo stile delle celle con C++

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);

Argomenti avanzati