Que tal, quisiera saber si alguien sabe como puedo exportar el contenido de un DataGridView de visual basic 2005 a cualquier hoja de cálculo (Excel, lotus, calc, etc.) asi como tambien a word y pdf, espero puedan ayudarme.
Gracias.
| |||
| Exportar DataGridView a cualquier hoja de cálculo Que tal, quisiera saber si alguien sabe como puedo exportar el contenido de un DataGridView de visual basic 2005 a cualquier hoja de cálculo (Excel, lotus, calc, etc.) asi como tambien a word y pdf, espero puedan ayudarme. Gracias. |
| |||
| Respuesta: Exportar DataGridView a cualquier hoja de cálculo No es tan simple como creo te imaginas, hay que manipular la hoja de excel desde el mismo codigo de tu aplicasión, para definir, tipo de letra tamaño, color, ancho de columnas, saltos de pagina, etc, etc. Si usaras reportes tipo crystal report ahi si que tienes la opción a exportar de forma mas sencilla, pero claro esto ya tiene su coste Busca sobre Microsoft.Office.Interop un ejemplo sencillo para qu ete hagas una idea, aqui se genera una hoja de excel agregando los datos de la "columna1" de un datagridview1
Código:
Esto para Excel, para pdf, y demas formatos hay que usar diferentes referencias. Private Sub GeneraExcel()
Dim xl As New Microsoft.Office.Interop.Excel.Application
Dim wb As Microsoft.Office.Interop.Excel.Workbook = xl.Workbooks.Add(System.Reflection.Missing.Value)
Dim ws As Excel.Worksheet
ws = wb.ActiveSheet
With xl.Cells(1, 1)
.value = "Columna1"
.Font.ColorIndex = 2
.Borders.ColorIndex = 2
.Interior.ColorIndex = 16
.Font.Bold = True
.Font.Size = 10
.Borders.ColorIndex = 2
End With
Dim ran As Excel.Range
Dim letra As Double = 10
For i As Integer = 0 To Datagridview1.Rows.Count - 1
Dim lin As Integer = i + 2
ran = ws.Range("A" & lin & "")
ran.Value = Datagridview1.Rows(i).Cells("Columna1").Value
ran.Font.Size = letra
Next
wb.SaveAs("C:\ReporteExcel.xls")
Dim Resp As String = MsgBox("¿Desea imprimir el informe de inventario?", MsgBoxStyle.OkCancel, "Confirmar impresión")
If Resp = vbOK Then
ws.PrintOut()
End If
wb.Close()
xl.Quit()
ws = Nothing
wb = Nothing
xl = Nothing
End Sub
|