none
FORMATO DE EXCEL DESDE VB

    Question

  • Hola a todos , tengo este codigo y quiero darle un mejor formato, como ponerle titulo(reporte de visitas de (fecha))
    un espacion del titulo a las cabeceras de los campos, cambiarle el tipo de letra, ponerle margen al reporte y fondo blanco,

    bueno se que es mucho detalle pero haber si alguien me ayuda, gracias.

     

     

    Private Sub exportar_Datagrid(Datagrid As Datagrid, n_Filas As Long)
     
        On Error GoTo Error_Handler
          
        Dim i   As Integer
        Dim j   As Integer
          
        Me.MousePointer = vbHourglass
          
        If n_Filas = 0 Then
            MsgBox "No hay datos para exportar a excel. Se ha indicado 0 en el parámetro Filas ":
            Exit Sub
        Else
              
            ' -- Crear nueva instancia de Excel
            Set Obj_Excel = CreateObject("Excel.Application")
            ' -- Agregar nuevo libro
            Set Obj_Libro = Obj_Excel.Workbooks.Open("D:\vb\libro.xlsx")
                   
          
            ' -- Referencia a la Hoja activa ( la que añade por defecto Excel )
            Set Obj_Hoja = Obj_Excel.ActiveSheet
               
         
            iCol = 0
            ' --  Recorrer el Datagrid ( Las columnas )
            For i = 0 To DataGrid1.Columns.Count - 1
                If DataGrid1.Columns(i).Visible Then
                    ' -- Incrementar índice de columna
                    iCol = iCol + 1
                    ' -- Obtener el caption de la columna
                    Obj_Hoja.Cells(1, iCol) = DataGrid1.Columns(i).Caption
                    ' -- Recorrer las filas
                    For j = 0 To n_Filas - 1
                        ' -- Asignar el valor a la celda del Excel
                        Obj_Hoja.Cells(j + 2, iCol) = _
                        DataGrid1.Columns(i).CellValue(DataGrid1.GetBookmark(j))
                    Next
                End If
            Next
              
            ' -- Hacer excel visible
            Obj_Excel.Visible = True
               
             
              
              

            With Obj_Hoja
                .Rows(1).Font.Bold = True
        '        .Rows(1).Font.Color = vbRed
                 .Rows(1).Size = 9
                 .Row(1).Name "Arial"
            ' -- Autoajustar las cabeceras
                .Columns("A:Z").AutoFit
            End With
           
        End If
     
        ' -- Eliminar las variables de objeto excel
        Set Obj_Hoja = Nothing
        Set Obj_Libro = Nothing
        Set Obj_Excel = Nothing
          
        ' -- Restaurar cursor
        Me.MousePointer = vbDefault
          
    Exit Sub

    ' -- Error
    Error_Handler:
     
        MsgBox Err.Description, vbCritical
        On Error Resume Next
        Set Obj_Hoja = Nothing
        Set Obj_Libro = Nothing
        Set Obj_Excel = Nothing
        Me.MousePointer = vbDefault
     
    End Sub


    maculdes
    Friday, October 21, 2011 5:25 PM

All replies

  • Lo que puedes hacer es crear un CSS, en el cual le des en formato nuevo al Gridview, ya que al exportarlo te toma la misma forma que el Gridview.

    En síntesis debes hacer bonito el Gridview y al exportarlo te tomara todos los formatos que le des.

    Espero te ayude, Saludos.

    Tuesday, November 27, 2012 5:13 PM