Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/11/2009, 07:16
javiercapi
 
Fecha de Ingreso: agosto-2005
Mensajes: 33
Antigüedad: 19 años, 6 meses
Puntos: 0
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:
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
Esto para Excel, para pdf, y demas formatos hay que usar diferentes referencias.