2010-06-25 13 views
13

¿Alguien me puede ayudar con ExcelLibrary? Me gustaría establecer un fondo de celda y el color de fuente, pero no sé cómo puedo hacerlo. Intento acceder a un estilo de celda, pero no lo encontré.¿Cómo puedo cambiar el estilo de celda en un archivo de Excel con ExcelLibrary?

¿Alguien tiene alguna idea?

+2

¿Es importante que utilice ExcelLibrary? Puede ver NPOI como alternativa, no estoy muy familiarizado con ExcelLibrary, pero NPOI probablemente tenga más funciones y esto es bastante simple de hacer. –

Respuesta

20

He mirado en esta biblioteca para usted y se encontró lo siguiente (advertencia - es una mala noticia!):

  1. No hay versión de lanzamiento de ExcelLibrary que permite el acceso a los colores de las celdas.

  2. En el código fuente no publicado hay una propiedad BackColor en la nueva clase CellStyle, sin embargo, no hay ninguna propiedad para representar el color de primer plano.

  3. La propiedad BackColor no se conserva cuando se guarda el libro de trabajo. Solo se usa para establecer el color de fondo de una celda cuando se carga el libro.

Si el uso de colores es un requisito a continuación, utilizar NPOI (según lo recomendado por @jamietre). A continuación, puede configurar los colores frontal y de fondo como este:

HSSFCellStyle style1 = hssfworkbook.CreateCellStyle(); 

// cell background 
style1.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.BLUE.index; 
style1.FillPattern = HSSFCellStyle.SOLID_FOREGROUND; 

// font color 
HSSFFont font1 = hssfworkbook.CreateFont(); 
font1.Color = NPOI.HSSF.Util.HSSFColor.YELLOW.index; 
style1.SetFont(font1); 

cell.CellStyle = style1; 
1

No probé esto pero parece que la celda tiene una propiedad llamada "Estilo" que define el estilo de celda. Aquí puede establecer el color de fondo para una celda específica.

worksheet.Cells[0,0].Style.BackColor = Color.CornflowerBlue; 
+0

He probado y, lamentablemente, no funciona. :(Echa un vistazo a mi respuesta para más detalles. –

+0

Hmm Acabo de ver la fuente en el repo de googlecode. Allí puedes encontrar el puntal del estilo: [Excel Library Repo] (http://code.google.com/) p/excellibrary/source/browse/trunk/src/ExcelLibrary/Office/Excel/SpreadSheet/Cell.cs) en la línea 120. – nhu

5

Sé que podría relacionarse con el ExcelLibrary, pero ¿has mirado en EPPlus? http://epplus.codeplex.com/

Se hará exactamente lo que estás preguntando - fácilmente (y más)

+0

Muchas gracias ... – Sayka

+0

EPPlus NO es una alternativa a ExcelLibrary. ExcelLibrary solo maneja el formato XLS. EPPlus solo maneja XLSX, por lo que no es un reemplazo. –

+0

Buena llamada Chris - No había considerado que pudieran estar atrapados con el viejo formato binario Excel por alguna razón. Si ese es el caso, tendría que ser de alguna forma de la biblioteca de Interop. El NPOI sería la mejor opción (como señaló Alex) en ese caso. – iivel

Cuestiones relacionadas