
Exportar Datagridview a excel condicionando celda
Publicado por Juan Carlos (11 intervenciones) el 06/06/2015 00:29:31
Hola.
Quisiera saber si me pueden ayudar, tengo un botón en una aplicación en VB:NET que exporta mi DATAGRIDVIEW a EXCEL, todo hasta la exportación esta muy bien PERO me piden que una columna de Excel este condicionada.
Condicionada me refiero a : por ejemplo tengo estos datos que me los arroja el DATAGRIDVIEW:
ID | NOMBRE | EDAD
1 CARLOS 25
2 JOSE 18
3 DIEGO 31
4 ALFONSO 45
al exportarlos a Excel todo bien, cada dato acomodado en fila y columna. La única condición que debe llevar es la siguiente:
en la columna EDAD deben marcarse, resaltarse o colorearse de ROJO la celda o el texto si es MAYOR a 30 años, como en el ejemplo DIEGO y ALFONSO deben exportarse salir en la hoja de Excel ya con formato y condición.
utilizo este código pero no se como hacerle para que haga lo que pido:
Dim App As New Excel.Application
Dim WB As Excel.Workbook
Dim WS As New Excel.Worksheet
WB = App.Workbooks.Add()
WS = WB.ActiveSheet
ProgressBar1.Value = 0
ProgressBar1.Maximum = DataGridView1.RowCount
For i As Integer = 1 To DataGridView1.Columns.Count
WS.Cells.Item(1, i) = DataGridView1.Columns(i - 1).Name.ToString
Next
For i As Integer = 0 To DataGridView1.Rows.Count - 1
For j As Integer = 0 To DataGridView1.Columns.Count - 1
WS.Cells.Item(i + 2, j + 1) = DataGridView1.Rows(i).Cells(j).Value
ProgressBar1.Value = i
If WS.Cells.Item(j + 2, 7) > 30 Then
WS.Cells.Item(i + 2, 7).Font.Color = Color.Red
End If
Next
Next
With WS
With .Range(.Cells(1, 1), .Cells(1, DataGridView1.ColumnCount)).Font
.Color = Color.White
.Bold = 1
.Size = 12
End With
.Range(.Cells(1, 1), .Cells(1, DataGridView1.ColumnCount)).Interior.Color = Color.Black
.Columns.AutoFit()
.Columns.HorizontalAlignment = 2
App.Application.Visible = True
WS.Protect("OcGripV3")
End With
les agradeceré mucho si por lo menos me dan algunas pistas.
saludos
Quisiera saber si me pueden ayudar, tengo un botón en una aplicación en VB:NET que exporta mi DATAGRIDVIEW a EXCEL, todo hasta la exportación esta muy bien PERO me piden que una columna de Excel este condicionada.
Condicionada me refiero a : por ejemplo tengo estos datos que me los arroja el DATAGRIDVIEW:
ID | NOMBRE | EDAD
1 CARLOS 25
2 JOSE 18
3 DIEGO 31
4 ALFONSO 45
al exportarlos a Excel todo bien, cada dato acomodado en fila y columna. La única condición que debe llevar es la siguiente:
en la columna EDAD deben marcarse, resaltarse o colorearse de ROJO la celda o el texto si es MAYOR a 30 años, como en el ejemplo DIEGO y ALFONSO deben exportarse salir en la hoja de Excel ya con formato y condición.
utilizo este código pero no se como hacerle para que haga lo que pido:
Dim App As New Excel.Application
Dim WB As Excel.Workbook
Dim WS As New Excel.Worksheet
WB = App.Workbooks.Add()
WS = WB.ActiveSheet
ProgressBar1.Value = 0
ProgressBar1.Maximum = DataGridView1.RowCount
For i As Integer = 1 To DataGridView1.Columns.Count
WS.Cells.Item(1, i) = DataGridView1.Columns(i - 1).Name.ToString
Next
For i As Integer = 0 To DataGridView1.Rows.Count - 1
For j As Integer = 0 To DataGridView1.Columns.Count - 1
WS.Cells.Item(i + 2, j + 1) = DataGridView1.Rows(i).Cells(j).Value
ProgressBar1.Value = i
If WS.Cells.Item(j + 2, 7) > 30 Then
WS.Cells.Item(i + 2, 7).Font.Color = Color.Red
End If
Next
Next
With WS
With .Range(.Cells(1, 1), .Cells(1, DataGridView1.ColumnCount)).Font
.Color = Color.White
.Bold = 1
.Size = 12
End With
.Range(.Cells(1, 1), .Cells(1, DataGridView1.ColumnCount)).Interior.Color = Color.Black
.Columns.AutoFit()
.Columns.HorizontalAlignment = 2
App.Application.Visible = True
WS.Protect("OcGripV3")
End With
les agradeceré mucho si por lo menos me dan algunas pistas.
saludos
Valora esta pregunta


0