Filexls de Ramon Avendaño

Filexls de Ramon Avendaño

Postby D.Fernandez » Fri Apr 28, 2017 7:01 pm

Hola amigos:

Trato de pasar un DBF a Excel. La clase Filexls es la que me ha sido mas fácil y cómoda. (FWH1608)
No he logrado que tome en cuenta los formatos y las distintas letras.
Alguien tendría una sugerencia.
Dejo el código que si funciona, sin negritas y nada que deseo poner.
Saludos y gracias.
Code: Select all  Expand view
LOCAL oXLS


       XLS oXLS FILE ".\Reporte.xls" AUTOEXEC
       DEFINE XLS FORMAT nFormat PICTURE '#,##0.00'
       DEFINE XLS FORMAT nFormat2 PICTURE '#0'    
       DEFINE XLS Format nFormat3 PICTURE "dd-dd-yyyy"
       DEFINE XLS FONT nFont1 NAME "VERDANA" HEIGHT 20 BOLD
       DEFINE XLS FONT nFont2 NAME "TAHOMA" HEIGHT 12
       DEFINE XLS FONT nFont3 NAME "TAHOMA" HEIGHT 14


       @ 1,2 XLS SAY "LISTADO DE CUENTAS"  FONT nFont1 OF oXls  
       @ 1,4 XLS SAY "Fecha:" + DTOC( Date() ) OF oXls  


       // CABECERAS
       nLen  := len( oBrExcel:aCols )
       nCol  := 1
       nFila := 3
              XLS COL 1 WIDTH 14  OF oXLS  
              @ nFila,1 XLS SAY "Fecha" BORDER FONT nFont1 OF oXls  

              XLS COL 2 WIDTH 50  OF oXLS
              @ nFila,2 XLS SAY "Detalle" BORDER FONT nFont1 OF oXls  

              XLS COL 3 WIDTH 20  OF oXLS
              @ nFila,3 XLS SAY "Importe" BORDER FONT nFont1 OF oXls  

              XLS COL 4 WIDTH 20  OF oXLS
              @ nFila,4 XLS SAY "Saldo " BORDER font NfONT1 OF oXls  


       nCol  := 1
       nFila++  
       nFila++  

        // DATOS
        DbSelectArea( DBGRAL )
        (DBGRAL)->(dbGoTop())
        while !(DBGRAL)->(Eof())
 
                     cText := oBrExcel:aCols[1]:Value()
                      @ nFila, nCol XLS SAY cText FORMAT nFormat3 OF oXls    
                      ncol++
             
                      cText := oBrExcel:aCols[3]:Value()
                      @ nFila, nCol XLS SAY cText FORMAT nFormat OF oXls    
                      ncol++
             
                      cText := oBrExcel:aCols[4]:Value()
                      @ nFila, nCol XLS SAY cText FORMAT nFormat2 OF oXls    
                      ncol++

                      cText := oBrExcel:aCols[5]:Value()
                      @ nFila, nCol XLS SAY cText FORMAT nFormat2 OF oXls    
                     // ncol++
                     nfila++
                     nCol:=1
                     (DBGRAL)->(dbskip())
        end While    
       
        nFila++
 
   ENDXLS oXLS

Return(.F.)
Dario Fernandez
FWH 24.09, Harbour, MVS2022 Community, BCC, MySql & MariaDB, Dbf/Cdx VSCode.
Maldonado - Uruguay
D.Fernandez
 
Posts: 466
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay

Re: Filexls de Ramon Avendaño

Postby joseluisysturiz » Sat Apr 29, 2017 5:21 pm

Con TOleAuto creo te seria mas facil, comodo y rapido...aca un ejemplo y tengo bastante sobre el tema, saludos... :shock:

Code: Select all  Expand view

   oExcel := TOleAuto():New( "Excel.Application" )
   oExcel:WorkBooks:Add()

// ESPECIFICAS EN QUE HOJA QUIERES QUE SE INICIE Y TRABAJE, SE SELECCIONA Y LUEGO ACTIVA
 oExcel:Sheets("Hoja2"):Select(); oHoja := oExcel:ActiveSheet()

   oHoja := oExcel:ActiveSheet() // SINO ESPECIFICAS QUE HOJA, TOMARA POR DEFECTO AL HOJA1

   oHoja:PageSetup:Orientation := 2 // 1=xlPortrai(vertical), 2=xlLandscape(horizontal)
   oHoja:Cells:Font:Name := "Arial" // ESPECIFICA TIPO DE LETRA PARA TODA LA HOJA
   oHoja:Cells:Font:Size := 12 // ESPECIFICA TAMANO DE LETRA PARA TODA LA HOJA
   oHoja:Cells(1, nFor):Font:Size := 16 // DETERMINA TAMAÑO DE LETRA A USAR EN UNA CELDA
   oHoja:Cells(1, 1):Font:Bold := .t. // PONE EN NEGRITAS VALOR DE UNA CELDA
   oHoja:Cells(1, 1):Font:ColorIndex := 5 // COLOR PREESTABLECIDO DE EXCEL DEL CONTENIDO DE LA CELDA
   oHoja:Cells(3, 2):Font:Color := RGB(255,0,0) // COLOR DEL CONTENIDO DE LA CELDA
   oHoja:Cells(1, 4):Interior:ColorIndex := 16 // COLOR PREESTABLECIDO DE EXCEL DE LA CELDA
   oHoja:Cells(3, 2):Interior:Color := RGB(200,160,35) // COLOR DE LA CELDA
   oHoja:Cells(3, 1):NumberFormat := "$ ###,##0.00"  // FORMATEAR CELDA NUMERICA
   oHoja:Cells(7, 1):FormulaLocal:="=SUMA(A1:A5)" // APLICAR FORMULA A UNA CELDA
*
  oHoja:Columns(n):ColumnWidth := n // ANCHO DE COLUMNA - aun no probado - 31/05/2016
   oHoja:Columns(n):ColumnHeight := n // ALTO DE COLUMNA - aun no probado - 31/05/2016
 
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Filexls de Ramon Avendaño

Postby D.Fernandez » Sat Apr 29, 2017 7:20 pm

Muchas gracias José Luis.
Lo pruebo y aviso.

Saludos. Rubén Dario Fernandez
Dario Fernandez
FWH 24.09, Harbour, MVS2022 Community, BCC, MySql & MariaDB, Dbf/Cdx VSCode.
Maldonado - Uruguay
D.Fernandez
 
Posts: 466
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay

Re: Filexls de Ramon Avendaño

Postby horacio » Sun Apr 30, 2017 5:43 pm

Yo trabajo con la clase TFileXls sin problemas. Lo mejor de esta clase es que escribe directamente el archivo en disco y no necesitas tener instalado Excel y es muchísimo mas rápido que atacarlo con TAutoOle.

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Filexls de Ramon Avendaño

Postby rubenfernandez01 » Sun Apr 30, 2017 6:44 pm

horacio wrote:Yo trabajo con la clase TFileXls sin problemas. Lo mejor de esta clase es que escribe directamente el archivo en disco y no necesitas tener instalado Excel y es muchísimo mas rápido que atacarlo con TAutoOle.

Saludos

Horacio, gracias. El problema es que no me hace caso a negritas y tamaños. A ti te funcionan?

Gracias.

Enviado desde mi LG-H860 mediante Tapatalk
rubenfernandez01
 
Posts: 46
Joined: Sun Sep 20, 2015 1:41 am

Re: Filexls de Ramon Avendaño

Postby rubenfernandez01 » Sun Apr 30, 2017 10:01 pm

Hola, alguien tendría un ejemplo con filexls que tenga diferentes tipos de letra?

Gracias.

Enviado desde mi LG-H860 mediante Tapatalk
rubenfernandez01
 
Posts: 46
Joined: Sun Sep 20, 2015 1:41 am

Re: Filexls de Ramon Avendaño

Postby horacio » Mon May 01, 2017 11:35 am

Te posteo un ejemplo

Code: Select all  Expand view

//----------------------------------------------------------------------------//   
Function XlsFacturas()

    Local nFormat1
    Local nFormat2
    Local oFileXLS
    Local nFont1
    Local nFont2
    Local nFont3
    Local nFont4
    Local nFont5
    Local nFor    
    Local i
    Local nImporte := 0
    Local nAbonado := 0
    Local nSaldo   := 0
    Local cFile    := Hb_CurDrive() + ':' + CurDir() + '\excel\listado_facturas.xls'
    Local oRec     := oClone( oRs )
    Memvar o
   
    If( !IsDirectory( hb_CurDrive() + '
:\' + Curdir() + '\excel' ) )
       MakeDir( hb_CurDrive() + '
:\' + Curdir() + '\excel' )
    End
    If( File( cFile ) )
       Ferase( cFile )
    End
    o : nRowXls := 1
    Define Xls Format nFormat2 Picture '
#,##0.00'   // para euros
   
    Define Xls Font nFont1 Name "Staccato222 BT" Height 10 Bold
    Define Xls Font nFont2 Name "Arial" Height 8 Bold
    Define Xls Font nFont3 Name "Arial" Height 8
    Define Xls Font nFont4 Name "Arial" Height 12 //Bold
    Define Xls Font nFont5 Name "Staccato222 BT" Height 8 Bold 
   
    Xls oFileXLS FILE &cFile
   
    Xls Col  1 Width  1 OF oFileXls
    Xls Col  2 Width 10 OF oFileXls
    Xls Col  3 Width 10 OF oFileXls
    Xls Col  4 Width 30 OF oFileXls
    Xls Col  5 Width 30 OF oFileXls
    Xls Col  6 Width 10 OF oFileXls
    Xls Col  7 Width 10 OF oFileXls
    Xls Col  8 Width 10 OF oFileXls

    o : nRowXls++
    @ o : nRowXls, 2 Xls Say o : cEmpresa Font nFont1 OF oFileXls Alignament ALING_LEFT
    o : nRowXls++
    @ o : nRowXls, 2 Xls Say '
LISTADO DE FACTURAS ' + If( !Empty( cTitulo ), cTitulo, '' ) Font nFont3 OF oFileXls Alignament ALING_LEFT
    o : nRowXls++
    @ o : nRowXls, 2 Xls Say '
F. DE EMISIÓN: ' Font nFont3 OF oFileXls Alignament ALING_LEFT
    @ o : nRowXls, 4 Xls Say DToC( Date() ) Font nFont2 OF oFileXls Alignament ALING_LEFT
    o : nRowXls++
    o : nRowXls++
    o : nRowXls++
    o : nRowXls++
   
    @ o : nRowXls, 2 Xls Say '
Nº FACT'   Font nFont2 OF oFileXls Alignament ALING_LEFT BORDER_TOP + BORDER_LEFT + BORDER_BOTTOM           
    @ o : nRowXls, 3 Xls Say '
FECHA'     Font nFont2 OF oFileXls Alignament ALING_LEFT BORDER_TOP + BORDER_BOTTOM          
    @ o : nRowXls, 4 Xls Say '
ALUMNO'    Font nFont2 OF oFileXls Alignament ALING_LEFT BORDER_TOP + BORDER_BOTTOM          
    @ o : nRowXls, 5 Xls Say '
CONCEPTO'  Font nFont2 OF oFileXls Alignament ALING_LEFT BORDER_TOP + BORDER_BOTTOM          
    @ o : nRowXls, 6 Xls Say '
IMPORTE'   Font nFont2 OF oFileXls Alignament ALING_LEFT BORDER_TOP + BORDER_BOTTOM          
    @ o : nRowXls, 7 Xls Say '
ABONADO'   Font nFont2 OF oFileXls Alignament ALING_LEFT BORDER_TOP + BORDER_BOTTOM          
    @ o : nRowXls, 8 Xls Say '
SALDO'     Font nFont2 OF oFileXls Alignament ALING_LEFT BORDER_TOP + BORDER_RIGHT + BORDER_BOTTOM           
    o : nRowXls++
    @ o : nRowXls, 2 Xls Say '
' Font nFont3 OF oFileXls Alignament ALING_CENTER BORDER_LEFT
    @ o : nRowXls, 8 Xls Say '
' Font nFont3 OF oFileXls Alignament ALING_CENTER BORDER_RIGHT
    o : nRowXls++
    While( !oRec : Eof() )
        @ o : nRowXls, 2 Xls Say StrZero( Val( o : nPtoVta ), 4 ) + '
-' + StrZero( oRec : id_factura, 6 ) Font nFont3 OF oFileXls Alignament ALING_CENTER BORDER_LEFT
        @ o : nRowXls, 3 Xls Say DToC( oRec : fecha ) Font nFont3 OF oFileXls Alignament ALING_CENTER
        @ o : nRowXls, 4 Xls Say oRec : alumno      Font nFont3 OF oFileXls Alignament ALING_LEFT
        @ o : nRowXls, 5 Xls Say oRec : concepto      Font nFont3 OF oFileXls Alignament ALING_LEFT
        oFileXls : Number( o : nRowXls, 6, oRec : importe, .f., .f., nFont5, nFormat2 )
        nImporte += oRec : importe
        oFileXls : Number( o : nRowXls, 7, oRec : pagado, .f., .f., nFont5, nFormat2 )             
        nAbonado += oRec : pagado
        oFileXls : Number( o : nRowXls, 8, oRec : importe - oRec : pagado, .f., .f., nFont5, nFormat2, .f., BORDER_RIGHT ) 
        nSaldo += oRec : importe - oRec : pagado
        oRec : Skip()
        o : nRowXls++          
    Enddo
    @ o : nRowXls, 2 Xls Say '
' Font nFont3 OF oFileXls Alignament ALING_CENTER BORDER_LEFT
    @ o : nRowXls, 8 Xls Say '
' Font nFont3 OF oFileXls Alignament ALING_CENTER BORDER_RIGHT
    o : nRowXls++          
    @ o : nRowXls, 2 Xls Say '
' Font nFont3 OF oFileXls Alignament BORDER_LEFT + BORDER_BOTTOM
    @ o : nRowXls, 3 Xls Say '
' Font nFont3 OF oFileXls Alignament BORDER_BOTTOM
    @ o : nRowXls, 4 Xls Say '
' Font nFont3 OF oFileXls Alignament BORDER_BOTTOM
    @ o : nRowXls, 5 Xls Say '
' Font nFont3 OF oFileXls Alignament BORDER_BOTTOM
    oFileXls : Number( o : nRowXls, 6, nImporte, .f., .f., nFont5, nFormat2, .f., BORDER_BOTTOM  ) 
    oFileXls : Number( o : nRowXls, 7, nAbonado, .f., .f., nFont5, nFormat2, .f., BORDER_BOTTOM  ) 
    oFileXls : Number( o : nRowXls, 8, nSaldo, .f., .f., nFont5, nFormat2, .f., BORDER_RIGHT + BORDER_BOTTOM  ) 

    SET Xls To Printer Footer "Desarrollos Digitales" Top Margin 0.6 BOTTOM MARGIN 0.8 LEFT MARGIN 0 OF oFileXls GRIDLINES
    EndXls oFileXls
    MsgRun( "Exportando datos, espere por favor ...",, { || ShellExecute( o : oWndMain : hWnd,, cFile,,, 3 ) } )
    Return 0   


Y la imagen

Image

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Filexls de Ramon Avendaño

Postby D.Fernandez » Mon May 01, 2017 3:53 pm

Horacio muchas gracias, pero no puedo lograrlo.

Lo hago de una dbf a la planilla y me da error
o : nRowXls := 1

Es muy posible que mi versión de FileXls sea muy vieja. Si puedes enviármela a zonadario@gmail.com te lo agradecería mucho.

Gracias y saludos.
Dario Fernandez
FWH 24.09, Harbour, MVS2022 Community, BCC, MySql & MariaDB, Dbf/Cdx VSCode.
Maldonado - Uruguay
D.Fernandez
 
Posts: 466
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay

Re: Filexls de Ramon Avendaño

Postby horacio » Mon May 01, 2017 4:23 pm

Ramon, la variable o : nRowXls declarala como public de esta manera

Code: Select all  Expand view

Public nRowXls //sin la o
 


Y reemplaza en el código a o : nRowXls por nRowXls. La clase la uso desde hace seis años sin actualizar a una versión nueva ( no sé si existe ) pero si quieres te la envío.

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Filexls de Ramon Avendaño

Postby D.Fernandez » Mon May 01, 2017 4:48 pm

Si te lo agradecería.

Gracias y saludos.
Dario Fernandez
FWH 24.09, Harbour, MVS2022 Community, BCC, MySql & MariaDB, Dbf/Cdx VSCode.
Maldonado - Uruguay
D.Fernandez
 
Posts: 466
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay

Re: Filexls de Ramon Avendaño

Postby horacio » Mon May 01, 2017 11:05 pm

Enviado ...

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Filexls de Ramon Avendaño

Postby D.Fernandez » Tue May 02, 2017 12:10 am

Gracias Horacio. Muy amable.

Saludos cordiales

Ruben Dario Fernandez
Dario Fernandez
FWH 24.09, Harbour, MVS2022 Community, BCC, MySql & MariaDB, Dbf/Cdx VSCode.
Maldonado - Uruguay
D.Fernandez
 
Posts: 466
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay

Re: Filexls de Ramon Avendaño

Postby elmoiquique » Mon Mar 05, 2018 9:19 pm

Hola

Alguien sabe como colocar colores a las celdas ???? con esta funcion
Fivewin-Xharbour 24.09, Iquique, Chile
elmoiquique
 
Posts: 316
Joined: Wed May 16, 2007 9:40 pm
Location: Region de Ñuble, Chile

Re: Filexls de Ramon Avendaño

Postby horacio » Mon Mar 05, 2018 9:30 pm

En la clase no vi ninguna data o método para colorear las celdas.

Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Filexls de Ramon Avendaño

Postby elmoiquique » Mon Mar 05, 2018 10:02 pm

y por ultimo las font, se le puede cambiar el color
Fivewin-Xharbour 24.09, Iquique, Chile
elmoiquique
 
Posts: 316
Joined: Wed May 16, 2007 9:40 pm
Location: Region de Ñuble, Chile

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 63 guests