Autor Tema: [Consulta] Exportar Datos de un Listview a Excel  (Leído 7298 veces)

0 Usuarios y 1 Visitante están viendo este tema.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
[Consulta] Exportar Datos de un Listview a Excel
« en: Agosto 10, 2010, 07:50:07 pm »
buenas con todos quisiera saber como puedo hacer para poder exportar datos de un listview, ejemplo todos los datos mostrados y los titulos de las columnas, alguna idea, estuve buscando por internet pero nada bueno encuentro. alguien me pudiera ayudar o darme un ejemplo gracias!  ;D

Ever Cerna

  • Megabyte
  • ***
  • Mensajes: 113
  • Reputación: +1/-1
  • anarkia99-Soft.
    • Ver Perfil
Re:[Consulta] Exportar Datos de un Listview a Excel
« Respuesta #1 en: Agosto 11, 2010, 12:51:11 am »
Algo asi.

En un Modulo pegas el code.

Código: (vb) [Seleccionar]
Public Sub Exportar(ListBuscar As ListView)
    Dim objExcel As Excel.Application
    Dim Ancho As Integer
    Dim Dato As Variant
    Dim c As Integer
    Dim f As Integer
    Dim ColumnaExcel As Integer

    Set objExcel = New Excel.Application
    With objExcel
        .Visible = False
        .SheetsInNewWorkbook = 1 'Determina el numero de hojas que se mostrara en el Excel
        .Workbooks.Add 'Crea el Libro
        .Sheets("Hoja1").Name = "Registro de Hardware"
        'Recorrer las celdas del Listview
   
    '----------------------------------------------
    ' Bucle principal
    '---------------------------------------------
        For f = 0 To ListBuscar.ListItems.Count
            ColumnaExcel = 1
            For c = 1 To ListBuscar.ColumnHeaders.Count
                If f = 0 Then
                    .Cells(1, ColumnaExcel) = ListBuscar.ColumnHeaders(c)
                Else
                    If c = 1 Then
                        .Cells(f + 1, 1) = ListBuscar.ListItems(f).Text
                    Else
                        Dato = ListBuscar.ListItems(f).SubItems(c - 1)
                        ' Prevención para que las fechas pasen a Excel como tales
                        ' En mi listview los títulos de las columnas fecha empiezan con F.
                        If Left(ListBuscar.ColumnHeaders(c).Text, 2) = "F." And Dato <> "" Then Dato = CDate(Dato)
                        .Cells(f + 1, ColumnaExcel) = Dato
                    End If
                    .Cells(f + 1, ColumnaExcel + 1).Select
                    'ColumnaExcel = ColumnaExcel + 1
                End If
                ColumnaExcel = ColumnaExcel + 1
            Next
        Next
        '----------------------------------------------
        ' Fin del Bucle principal
        '----------------------------------------------
       
        .Range("A1").Select
        .Range(.Selection, .Selection.End(xlToRight)).Select
         PonerSombraCelda objExcel, 15, xlSolid
         PonerBordeCelda objExcel
       
        .Range(.Selection, .Selection.End(xlDown)).Select
         PonerBordeCelda objExcel
        .Cells.Select
        .Selection.WrapText = False
        .Cells.EntireColumn.AutoFit
        .Range("A1").Select
    End With
   
    'Preparar impresión en apasiado y a una hoja de ancho
    With objExcel.ActiveSheet.PageSetup
        .Orientation = xlLandscape
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = False
    End With

    objExcel.Visible = True
    Set objExcel = Nothing
   
    Screen.MousePointer = vbDefault
End Sub

Public Sub PonerBordeCelda(Objeto As Excel.Application)
    With Objeto
        .Selection.Borders(xlEdgeLeft).Weight = xlThick
        .Selection.Borders(xlEdgeTop).Weight = xlThick
        .Selection.Borders(xlEdgeBottom).Weight = xlThick
        .Selection.Borders(xlEdgeRight).Weight = xlThick
        .Selection.Borders(xlInsideVertical).Weight = xlThin
        .Selection.Borders(xlInsideHorizontal).Weight = xlThin
    End With
End Sub

Public Sub PonerSombraCelda(Objeto As Excel.Application, ColorIndex As _
    Integer, Pattern As Integer)
   
    With Objeto.Selection.Interior
        .ColorIndex = ColorIndex
        .Pattern = Pattern
    End With
End Sub

y lo llamas asi

Código: (vb) [Seleccionar]
Call Exportar(ListView1)
Salu2.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:[Consulta] Exportar Datos de un Listview a Excel
« Respuesta #2 en: Agosto 11, 2010, 01:00:40 pm »
esta en el modulo y me sale q no esta definido


Public Sub PonerBordeCelda(Objeto As Excel.Application)  <<<<<<<<<<<<<<<<<


q me falta agregar?


Ever Cerna

  • Megabyte
  • ***
  • Mensajes: 113
  • Reputación: +1/-1
  • anarkia99-Soft.
    • Ver Perfil
Re:[Consulta] Exportar Datos de un Listview a Excel
« Respuesta #3 en: Agosto 11, 2010, 01:21:01 pm »
Perdón se me olvido decirte, que tenias que hacer una referencia a Microsoft Excel 12.0bject Library, En menu Proyecto/Referencias

Salu2.

omarinho23

  • Megabyte
  • ***
  • Mensajes: 105
  • Reputación: +0/-1
    • Ver Perfil
Re:[Consulta] Exportar Datos de un Listview a Excel
« Respuesta #4 en: Agosto 11, 2010, 01:35:12 pm »
gracias por todo xD
« última modificación: Agosto 11, 2010, 02:17:35 pm por omarinho23 »

BlackZeroX

  • Bytes
  • *
  • Mensajes: 34
  • Reputación: +4/-1
    • Ver Perfil
Re:[Consulta] Exportar Datos de un Listview a Excel
« Respuesta #5 en: Agosto 19, 2010, 11:58:47 pm »

aqui tienes un modulo de clase que te facilita el uso del excel en vb6

Cls_ExcelAplication.cls

Dulce Infierno Lunar!¡.

Collin Farrel

  • Bit
  • Mensajes: 1
  • Reputación: +0/-0
    • Ver Perfil
Re:[Consulta] Exportar Datos de un Listview a Excel
« Respuesta #6 en: Agosto 18, 2017, 11:46:55 am »
Muchas gracias por el code, me sirvio, estamos en 2017 y seguimos trabajando con VB6. Excelente foro.