Filexls de Ramon Avendaño

D.Fernandez
Posts: 530
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay
Contact:

Filexls de Ramon Avendaño

Post by D.Fernandez »

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

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 oXLSReturn(.F.)
Dario Fernandez
FWH 24.09, Harbour, MVS2022 Community, BCC, MySql & MariaDB, Dbf/Cdx VSCode.
Maldonado - Uruguay
User avatar
joseluisysturiz
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Filexls de Ramon Avendaño

Post by joseluisysturiz »

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

   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!
D.Fernandez
Posts: 530
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay
Contact:

Re: Filexls de Ramon Avendaño

Post by D.Fernandez »

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
horacio
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Filexls de Ramon Avendaño

Post by horacio »

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
rubenfernandez01
Posts: 48
Joined: Sun Sep 20, 2015 1:41 am

Re: Filexls de Ramon Avendaño

Post by rubenfernandez01 »

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: 48
Joined: Sun Sep 20, 2015 1:41 am

Re: Filexls de Ramon Avendaño

Post by rubenfernandez01 »

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

Gracias.

Enviado desde mi LG-H860 mediante Tapatalk
horacio
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Filexls de Ramon Avendaño

Post by horacio »

Te posteo un ejemplo

Code: Select all | Expand

//----------------------------------------------------------------------------//    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
D.Fernandez
Posts: 530
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay
Contact:

Re: Filexls de Ramon Avendaño

Post by D.Fernandez »

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
horacio
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Filexls de Ramon Avendaño

Post by horacio »

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

Code: Select all | Expand

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
D.Fernandez
Posts: 530
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay
Contact:

Re: Filexls de Ramon Avendaño

Post by D.Fernandez »

Si te lo agradecería.

Gracias y saludos.
Dario Fernandez
FWH 24.09, Harbour, MVS2022 Community, BCC, MySql & MariaDB, Dbf/Cdx VSCode.
Maldonado - Uruguay
horacio
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Filexls de Ramon Avendaño

Post by horacio »

Enviado ...

Saludos
D.Fernandez
Posts: 530
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay
Contact:

Re: Filexls de Ramon Avendaño

Post by D.Fernandez »

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
elmoiquique
Posts: 323
Joined: Wed May 16, 2007 9:40 pm
Location: Region de Ñuble, Chile

Re: Filexls de Ramon Avendaño

Post by elmoiquique »

Hola

Alguien sabe como colocar colores a las celdas ???? con esta funcion
Fivewin-Xharbour 24.09, Iquique, Chile
horacio
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Filexls de Ramon Avendaño

Post by horacio »

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

Saludos
elmoiquique
Posts: 323
Joined: Wed May 16, 2007 9:40 pm
Location: Region de Ñuble, Chile

Re: Filexls de Ramon Avendaño

Post by elmoiquique »

y por ultimo las font, se le puede cambiar el color
Fivewin-Xharbour 24.09, Iquique, Chile
Post Reply