Obtener y establecer estilo para celdas

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 dar formato. Si se están formateando muchas celdas, se consume una gran cantidad de memoria porque el objeto Style es grande. Estos objetos Style no se liberarán hasta que se llame al método Workbook.Save.

C#

cell.GetStyle().Font.IsBold = true;

Usando SetStyle()

El primer enfoque es fácil y directo, ¿entonces por qué añadimos el segundo enfoque?

Añadimos el segundo enfoque para optimizar el uso de memoria. Después de usar el método Cell.GetStyle para obtener un objeto Style, se modifica y se utiliza el método Cell.SetStyle para establecerlo de nuevo en esta celda. Este objeto Style no se conservará y .NET lo recolectará cuando no esté referenciado.

Al llamar al método Cell.SetStyle, el objeto Style no se guarda para cada celda. En su lugar, comparamos este objeto Style con una piscina interna de objetos Style para ver si se puede reutilizar. Solo se conservan los objetos Style que difieren de los existentes para cada objeto Workbook. Esto significa que solo hay varios cientos de objetos Style para cada archivo de Excel en lugar de miles. Para cada celda, solo se conserva un índice a la piscina de objetos Style.

C#

Style style = cell.GetStyle();

style.Font.IsBold = true;

cell.SetStyle(style);

Temas avanzados