Obtener y establecer estilo para celdas con C++

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

Temas avanzados