FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ejemplo Clase Texcel
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Ejemplo Clase Texcel
Posted: Wed Oct 11, 2006 12:10 PM

Amigos del foro he descargado la clase que modifico vickthor de su sitio... He estado revisando los ejemplos, pero todavia no la tengo clara .....

Si alguien me pudiera ayudar con un ejemplo que pase una base de datos a excel se lo agradeceria... de Antemano gracias.

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 298
Joined: Fri Oct 07, 2005 05:20 AM
Re: Ejemplo Clase Texcel
Posted: Wed Oct 11, 2006 02:02 PM
leandro wrote:Amigos del foro he descargado la clase que modifico vickthor de su sitio... He estado revisando los ejemplos, pero todavia no la tengo clara .....

Si alguien me pudiera ayudar con un ejemplo que pase una base de datos a excel se lo agradeceria... de Antemano gracias.


Leandro :

El siguiente código crea un libro y en la primera hoja, vacia todo el contenido de un archivo .dbf , se asigna formato a las columnas , se define el nombre para un rango , se cambia el tipo de letra, se renombra la hoja.

Espero que te ayude.


        oExcel := TExcelScript():New()

        oExcel:Create( cFile+".xls" )

        oExcel:oSheet:Range( "A:E" ):NumberFormat = "@"

        // Hoja para los lotes

        uData := "NUMBER"+Chr( 9 )+"ITEM"+Chr( 9 )+"LOTE"+Chr( 9 )+"QUANTY"+Chr( 9 )+"ALMACEN"+ CRLF
        bAdd := { || uData += Alltrim( ( cLt )->Number )+ Chr( 9 ) , ;
                     uData += Alltrim( ( cLt )->Item )+ Chr( 9 ) , ;
                     uData += Alltrim( Transform( ( cLt )->Lote , "XXXXXXXX") )+ Chr( 9 ) , ;
                     uData += Alltrim( Transform( ( cLt )->Quanty , "##,###,###") )+ Chr( 9 ) , ;
                     uData += Alltrim( ( cLt )->Almacen ) , ;
                     uData += CRLF }


       ( cLt )->( DbGoTop() )
        nStart := 1
        nLine := 1
        oClip := TClipBoard():New()
        DO WHILE ( cLt )->( !Eof() )
           nLine++
           Eval( bAdd )
           IF Len( uData ) > 50000
              oClip:Clear()
              oClip:SetText( uData )
              cCell := "A" + Alltrim( Str( nStart ) )
              oExcel:SetPos( cCell )
              oExcel:Paste()
              nStart := nLine + 1
              uData := ""
           ENDIF
           ( cLt )->( DbSkip( 1 ) )
        ENDDO
        IF Len( uData ) > 0
           oClip:Clear()
           oClip:SetText( uData )
           cCell := "A" + Alltrim( Str( nStart ) )
           oExcel:SetPos( cCell )
           oExcel:Paste()
        ENDIF
        cRange := "A1:E" + Alltrim( Str( nLine ) )
        oExcel:oSheet:Range( cRange ):Select()
        oClip:Clear()
        oExcel:NameSheet( "Hoja1" , "LOTES" )
        oExcel:oExcel:Selection:Name := "LOTES"
        oExcel:oExcel:Selection:Font:Name := "Tahoma"
        oExcel:oExcel:Selection:AutoFit()
        oClip:End()
        ( cLt )-> ( DbCloseArea() )
Vikthor
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Amigo Gracias lo voy a probar
Posted: Thu Oct 12, 2006 07:20 PM

Amigo muchas gracias voy a probar y te comento.

:arrow::D

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]

Continue the discussion