Como exportar MSHFlexgrid1 a Excel? - Expertos en vb6.0

Iniciado por hunter18, 17 Junio 2010, 22:27 PM

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

hunter18

Uhm!! ya veo asi era el asunto gracias por la aclaracion,estare pendiente haber cuando sale tu modulo de clase, saludos

BlackZeroX

Cita de: hunter18 en 20 Junio 2010, 02:17 AM
Uhm!! ya veo asi era el asunto gracias por la aclaracion,estare pendiente haber cuando sale tu modulo de clase, saludos

http://foro.elhacker.net/programacion_visual_basic/srccls_clsexcelaplication_release_memory-t297215.0.html;msg1472257#msg1472257

Puedes usar en tu caso este!¡.

Código (vb) [Seleccionar]


'   //  Función para contar las Columnas REALES de un MSHFlexgrid.
Private Function GetColumns&(ByRef FlexGrid As MSHFlexGrid)
On Error GoTo Terminar
Dim Res$
    Res$ = Space(1)
    Do
        Res$ = FlexGrid.TextMatrix(0, GetColumns&)
        GetColumns& = GetColumns& + 1
    Loop Until Not Err.Number <= 0
Terminar:
    GetColumns& = GetColumns& - 1
    Err.Clear
End Function

'   //  Función para crear un nuevo libro con el contenido del MSHFlexgrid
Public Function Flexgrid_To_File_FormatExcel(ByVal sOutPutPath As String, ByRef FlexGrid As MSHFlexGrid) As Boolean
On Error GoTo Error_Handler
Dim InstanciaExcel              As Cls_ExcelAplication                      '   //  Contenedor de la aplicacion Excel Con {Liberacion de Memoria} al descargar!¡).
Dim Obj_Hoja                    As Object
Dim Lng_UbHojas&
Dim Fila&
Dim TmpStr$
Dim Columna&
Dim CantCols&
    Set InstanciaExcel = New Cls_ExcelAplication                            '   //  Crea el objeto Excel,   (Con {Liberacion de Memoria} Automatica)
    If Not InstanciaExcel Is Nothing Then
        With InstanciaExcel
            Set Obj_Hoja = .Hoja                                            '   //  Creamos una nueva Hoja
            CantCols = GetColumns&(FlexGrid)
            With FlexGrid
                For Fila = 1 To .Rows - 1                                   '   //  Bucle para Exportar los datos.
                    For Columna = 0 To CantCols&                            '   //  Bucle para Exportar los datos.
                        TmpStr$ = .TextMatrix(Fila, Columna)                                                                                                                                                                                                         '   //  Texto de Celda.
                        If IsNumeric(TmpStr$) Then TmpStr$ = "'" & TmpStr$  '   //  Si es numero lo exportamos como tal {Seria como comentario...} !¡.
                        Obj_Hoja.cells(Fila, Columna + 1).Value = TmpStr$
                    Next
                Next
            End With
            Call .Libro(, Obj_Hoja).Close(True, sOutPutPath)
            Set Obj_Hoja = Nothing
        End With
    End If
Error_Handler:
    Set InstanciaExcel = Nothing                                            '   //  Se descarga la clase y la aplicacion Excel automaticamente.
    Flexgrid_To_File_FormatExcel = Not CBool(Err.Number)
    Call Err.Clear
End Function



Dulce Infierno Luanr!¡.
The Dark Shadow is my passion.


karmany

Un trabajo excelente. Está todo bien protegido de errores.
Efectivamente lo del + y - del MSHFlexGrid es causa de la consulta, realmente no tengo tiempo para analizar.

Felicidades, muy buen trabajo.