Color de celdas (filas y columnas) en la clase FILEXLS

Post Reply
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Color de celdas (filas y columnas) en la clase FILEXLS

Post by JmGarcia »

Pues eso.
¿ Se puede dar color a una fila con la clase TFileXLS ?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

JmGarcia,


Prueba esto:


oHoja:Rows( "2:4" ):Interior:Color := RGB( 244, 249, 198)
oHoja:Cells( nRow, nCol ):Font:Bold := .T.
oHoja:Cells( nRow, nCol ):Font:Color := CLR_RED
oHoja:Rows(nRow):Interior:Color := CLR_HCYAN


Saludos
Pedro Gonzalez
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

He probado todas las formas y en todas me da este error en ejecucion:
ARGUMENT ERROR
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

JmGarcia,

Escribe parte del codigo de como lo haces...


Saludos
Pedro Gonzalez
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

Code: Select all

#include "FiveWin.ch"
#include "FileXLS.ch"
function Main(cFicheroTXT)
local oFileXLS,cFichXLS:=cFicheroTXT+".xls",Indice:=0
XLS oFileXLS FILE &cFichXLS AUTOEXEC
Indice:=1
@ Indice, 1 XLS SAY "COMUN/CR-CO/CA-CO" OF oFileXLS
@ Indice, 2 XLS SAY "HORA"              OF oFileXLS
@ Indice, 3 XLS SAY "FECHADO"           OF oFileXLS
@ Indice, 4 XLS SAY "NUMERO"            OF oFileXLS
hFichero:=fopen(cFicheroTXT)
do while .not. feof(hFichero)
   cLinea:=freadline(hFichero)
   cTipo:=alltrim(right(cLinea,5))
   Indice:=Indice+1
   @ Indice, 1 XLS SAY cTipo OF oFileXLS
   @ Indice, 2 XLS SAY val(substr(cLinea,  1,8)) OF oFileXLS FORMAT "#######0"
   @ Indice, 3 XLS SAY val(substr(cLinea, 10,8)) OF oFileXLS FORMAT "#######0"
   @ Indice, 4 XLS SAY val(substr(cLinea, 19,4)) OF oFileXLS FORMAT "###0"
enddo
fclose(hFichero)
ENDXLS oFileXLS
return nil
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
FiveWiDi
Posts: 910
Joined: Mon Oct 10, 2005 2:38 pm

Post by FiveWiDi »

JmGarcia wrote:

Code: Select all

#include "FiveWin.ch"
#include "FileXLS.ch"
function Main(cFicheroTXT)
local oFileXLS,cFichXLS:=cFicheroTXT+".xls",Indice:=0
XLS oFileXLS FILE &cFichXLS AUTOEXEC
Indice:=1
@ Indice, 1 XLS SAY "COMUN/CR-CO/CA-CO" OF oFileXLS
@ Indice, 2 XLS SAY "HORA"              OF oFileXLS
@ Indice, 3 XLS SAY "FECHADO"           OF oFileXLS
@ Indice, 4 XLS SAY "NUMERO"            OF oFileXLS
hFichero:=fopen(cFicheroTXT)
do while .not. feof(hFichero)
   cLinea:=freadline(hFichero)
   cTipo:=alltrim(right(cLinea,5))
   Indice:=Indice+1
   @ Indice, 1 XLS SAY cTipo OF oFileXLS
   @ Indice, 2 XLS SAY val(substr(cLinea,  1,8)) OF oFileXLS FORMAT "#######0"
   @ Indice, 3 XLS SAY val(substr(cLinea, 10,8)) OF oFileXLS FORMAT "#######0"
   @ Indice, 4 XLS SAY val(substr(cLinea, 19,4)) OF oFileXLS FORMAT "###0"
enddo
fclose(hFichero)
ENDXLS oFileXLS
return nil
Con esta clase no puedes usar directamente FORMAT "###0", sino que primero debes declarar el formato que deseas usar:

#xcommand DEFINE XLS FORMAT <nFormat> ;
[ PICTURE <cPicture> ] ;
=> ;
<nFormat> := XLSFormat( <cPicture> )

DEFINE XLS FORMAT n4SinDecimales "###0"

y despues usar:

@ Indice, 4 XLS SAY val(substr(cLinea, 19,4)) OF oFileXLS FORMAT n4SinDecimales

siendo n4SinDecimales una variable numérica de tu función.

Saludos
Carlos G.
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

FiveWiDi wrote:Con esta clase no puedes usar directamente FORMAT "###0", sino que primero debes declarar el formato que deseas usar:

#xcommand DEFINE XLS FORMAT <nFormat> ;
[ PICTURE <cPicture> ] ;
=> ;
<nFormat> := XLSFormat( <cPicture> )

DEFINE XLS FORMAT n4SinDecimales "###0"

y despues usar:

@ Indice, 4 XLS SAY val(substr(cLinea, 19,4)) OF oFileXLS FORMAT n4SinDecimales

siendo n4SinDecimales una variable numérica de tu función.

Saludos
Carlos G.
Es que como tengo "tantos formatos" no me parecio conveniente usar variables y me funciona de esa forma que he puesto yo :oops:

Pero a parte de eso (que lo cambiare) ¿ como añado COLOR a las celdas ?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

No uso esta clase, pero prueba asi:


oFileXLS:Get( "ActiveSheet" ):Rows( "2:4" ):Interior:Color := RGB( 244, 249, 198)


Saludos
Pedro Gonzalez
FiveWiDi
Posts: 910
Joined: Mon Oct 10, 2005 2:38 pm

Post by FiveWiDi »

JmGarcia wrote:
FiveWiDi wrote:Con esta clase no puedes usar directamente FORMAT "###0", sino que primero debes declarar el formato que deseas usar:

#xcommand DEFINE XLS FORMAT <nFormat> ;
[ PICTURE <cPicture> ] ;
=> ;
<nFormat> := XLSFormat( <cPicture> )

DEFINE XLS FORMAT n4SinDecimales "###0"

y despues usar:

@ Indice, 4 XLS SAY val(substr(cLinea, 19,4)) OF oFileXLS FORMAT n4SinDecimales

siendo n4SinDecimales una variable numérica de tu función.

Saludos
Carlos G.
Es que como tengo "tantos formatos" no me parecio conveniente usar variables y me funciona de esa forma que he puesto yo :oops:

Pero a parte de eso (que lo cambiare) ¿ como añado COLOR a las celdas ?
Creo que con esta clase no puedes dar color.
Si lo averiguas me lo dices, yo tengo el mismo problema y aunque evidentemente no es lo mismo, lo que hago es jugar con los tipos de letra y los marcos de las celdas.

Esta clase escribe un fichero en formato Excel ¿1.2? de manera que puedes usarla aunque no tenga ningún programa que pueda abrir el fichero.
Esto y que no abre/precisa Excel es quizás la única ventaja que le veo.

Además, hace poco descubrí que enviaba el fichero por mail y uno de los destinatarios tenía antivirus PANDA y lo identificaba como INFECTADO, evidentemente era un error del antivirus que ¿quizás no contemplaba formatos de ficheros tan antíguos?

Saludos
Carlos G.
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Post by JmGarcia »

pymsoft wrote:oFileXLS:Get( "ActiveSheet" ):Rows( "2:4" ):Interior:Color := RGB( 244, 249, 198)
Es lo que me imaginaba, pymsoft, lo usas con ActiveX.
En las maquinas que correra la utilidad que estoy haciendo NO tiene Office, de hay use TFileXLS.
El no tenen Office es porque solo se usan con programas de servicio y de control de procesos y unas cuantas licencias de Office valen una pasta.
FiveWiDi wrote:Creo que con esta clase no puedes dar color.
Pues mi pozo en un gozo...


P.D.: ¡¡¡ Ramón Avendaño !!! por favor, un poco de color a tu "clase".
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Post Reply