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 |