2011-08-08 54 views
5

Estoy escribiendo algunos datos de la base de datos en excel a través de visual basic.net. Necesito cambiar el fondo de algunas celdas y también necesito hacer un texto en negrita. Necesito algo como eso:Cambiando el color de la celda de la hoja de Excel a través de VB.NET

xlWorkSheet.Cells(rownumber, 1).BackgroundColor = Color.Yellow 
xlWorkSheet.Cells(rownumber, 1).Font.isBold = True 

Por supuesto ninguno de los anteriores es trabajos.¿Cómo puedo lograr esto? Gracias ..

Respuesta

9

Debe crear un objeto Excel.Style y aplicarlo a un rango. De esta manera:

Dim style As Excel.Style = xlWorkSheet.Application.ActiveWorkbook.Styles.Add("NewStyle") 
style.Font.Bold = True 
style.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Yellow) 

xlWorkSheet.Cells(rownumber, 1).Style = "NewStyle" 
+0

¿cómo podemos hacer de acuerdo con índices como (1,1), (5,6) etc. rangos no como A1, B1 ..? – dnur

+0

@dnur: xlWorkSheet.Cells (1,1) es del tipo Range, por lo que * Controls.AddNamedRange (xlWorkSheet.Cells (rownumber, 1), "rangeStyles") * debería funcionar. –

+0

da un error en la línea que contiene "Globals.ThisWorkbook". Lo cambié con el nombre de mi libro de trabajo "xlWorkBook" y "Globals.xlWorkBook" pero ninguno funcionó. También da un segundo error en la línea que contiene "Microsoft.Office.Tools.Excel.NamedRange" y lo cambié con "Microsoft.Office.Interop.Excel.ShapeRange". ¿es verdad? – dnur

4

Esto funcionó perfecto para mí.

xlsWorkSheet.Cells (fila, columna) .interior.color = Color.Green

+0

¡Es muy simple! –

1

Eso pocos declaración que le puede ayudar para el estilo de Excel
Para paleta de colores: http://dmcritchie.mvps.org/excel/colors.htm

   Dim xlsCell As Excel.Range 
        xlsCell = xlWorkSheet.Range("A1") 
        xlsCell.Range("A5").Value = "TEXT" 

        With xlsCell.Range("A12:J12") 
         .Merge() 
         .Borders(XlBordersIndex.xlEdgeBottom).Weight = 2 
         .Borders(XlBordersIndex.xlEdgeTop).Weight = 2 
         .Borders(XlBordersIndex.xlEdgeLeft).Weight = 2 
         .Borders(XlBordersIndex.xlEdgeRight).Weight = 2 
         .Borders(XlBordersIndex.xlInsideHorizontal).Weight = 2 
         .Borders(XlBordersIndex.xlInsideVertical).Weight = 2 
         .Interior.ColorIndex = 15       
         .WrapText = True 
         .Font.FontStyle = "Arial" 
         .VerticalAlignment = Excel.XlHAlign.xlHAlignCenter 
         .HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft 
        End With 
0
void SetCaptionStyle(ExcelStyle style) 
    { 
     style.Fill.PatternType = ExcelFillStyle.Solid; 
     style.Fill.BackgroundColor.SetColor(Color.FromArgb(184, 204, 228)); 

    } 
+1

¿Puede explicar cómo importar y llamar a esta función C# desde VB.NET? – Tino

+0

Soy nuevo para este idioma. Pero encontré una URL de ayuda. Espero que te ayude. 1) http://vb.net-informations.com/excel-2007/vb.net_excel_page_format.htm 2) https://www.gemboxsoftware.com/spreadsheet/examples/c-sharp-vb-net-excel -style-formatting/202 – Jagdeep

Cuestiones relacionadas