Obtener y establecer estilo para celdas con C++
Cell.GetStyle
y Cell.SetStyle
. Este artículo examina el enfoque Cell.GetStyle
/SetStyle
para ayudarte a decidir qué técnica se adapta mejor a ti.
Formato de celdas
Hay dos formas de dar formato a una celda, ilustradas a continuación.
Usando GetStyle()
Con el siguiente fragmento de código, se inicia un objeto Style
para cada celda al formatearla. Si se formatean muchas celdas, se consume una gran cantidad de memoria porque el objeto Style
es grande. Estos objetos Style
no serán liberados hasta que se llame al método Workbook.Save
.
C++
cell.GetStyle()->GetFont()->SetIsBold(true);
Usando SetStyle()
El primer enfoque es fácil y directo, ¿por qué añadimos el segundo enfoque?
Agregamos el segundo enfoque para optimizar el uso de memoria. Después de usar el método Cell.GetStyle
para obtener un objeto Style
, modifícalo y usa el método Cell.SetStyle
para volver a establecerlo en esa celda. Este objeto Style
no se conservará y el runtime de C++ lo recopilará cuando no se haga referencia a él.
Al llamar al método Cell.SetStyle
, el objeto Style
no se guarda para cada celda. En su lugar, comparamos este objeto Style
con un pool interno de objetos Style
para ver si puede ser reutilizado. Solo se conservan los objetos Style
que difieren de los existentes. Esto significa que hay solo unos pocos cientos de objetos Style
por cada archivo de Excel en lugar de miles. Para cada celda, solo se conserva un índice del pool de objetos Style
.
C++
auto style = cell.GetStyle();
style->GetFont()->SetIsBold(true);
cell.SetStyle(style);