José Luis
2005-12-21 16:32:03 UTC
Hola a todos,
tengo un problema bastante raro que espero que alguien me pueda echar una
mano en resolver. El problema es el siguiente:
Desde un grid tengo que exportar su contenido a Excel, esto lo he conseguido
hacerlo con el siguiente código (el contenido del grid ya lo he metido en el
portapapeles).
LOCAL nCOL, sCELDA, nFILA, sCAMPO, aCAMPOS
objexcel=createobject("excel.application")
objexcel.workbooks.add
DIMENSION aCAMPOS(1)
=AFIELDS(aCAMPOS, "w_expo1")
objexcel.cells.select
objexcel.selection.font.size=8
objexcel.Cells.EntireColumn.AutoFit
objexcel.range("a1").select
nH=FCOUNT("w_expo1")
FOR nCOL=0 TO nH -1
sCELDA=CHR(65+nCOL)+"1"
objexcel.range(sCELDA).VALUE = aCAMPOS(nCOL+1, 1)
NEXT
nFILA=2
SELECT w_expo1
SCAN
FOR nCOL=0 TO nH - 1
sCELDA=CHR(65+nCOL)+ALLTRIM(TRANSFORM(nFILA,"####"))
sCAMPO="w_expo1." + FIELD(nCOL+1)
IF aCAMPOS(nCOL+1, 2)$"TD" then && Si es una fecha la
convertimos.
objexcel.range(sCELDA) = DTOC( &sCAMPO )
ELSE
objexcel.range(sCELDA) = &sCAMPO
ENDIF
NEXT
nFILA=nFILA+1
ENDSCAN
objexcel.visible=.t.
_CLIPTEXT="" && vaciamos el portapapeles
Esto funciona perfectamente, el único problema que tengo es que al exportar
un campo de tipo fecha me lo modifica y le cambio el formato, es decir me
cambia de DDMMYYYY a MMDDYYYY, incluso habiendo puesto SET DATE DMY.
¿Alguién me puede decir porque ocurre esto y como puede solucionarse?
Muchas gracias por anticipado.
Un saludo,
José Luis.
tengo un problema bastante raro que espero que alguien me pueda echar una
mano en resolver. El problema es el siguiente:
Desde un grid tengo que exportar su contenido a Excel, esto lo he conseguido
hacerlo con el siguiente código (el contenido del grid ya lo he metido en el
portapapeles).
LOCAL nCOL, sCELDA, nFILA, sCAMPO, aCAMPOS
objexcel=createobject("excel.application")
objexcel.workbooks.add
DIMENSION aCAMPOS(1)
=AFIELDS(aCAMPOS, "w_expo1")
objexcel.cells.select
objexcel.selection.font.size=8
objexcel.Cells.EntireColumn.AutoFit
objexcel.range("a1").select
nH=FCOUNT("w_expo1")
FOR nCOL=0 TO nH -1
sCELDA=CHR(65+nCOL)+"1"
objexcel.range(sCELDA).VALUE = aCAMPOS(nCOL+1, 1)
NEXT
nFILA=2
SELECT w_expo1
SCAN
FOR nCOL=0 TO nH - 1
sCELDA=CHR(65+nCOL)+ALLTRIM(TRANSFORM(nFILA,"####"))
sCAMPO="w_expo1." + FIELD(nCOL+1)
IF aCAMPOS(nCOL+1, 2)$"TD" then && Si es una fecha la
convertimos.
objexcel.range(sCELDA) = DTOC( &sCAMPO )
ELSE
objexcel.range(sCELDA) = &sCAMPO
ENDIF
NEXT
nFILA=nFILA+1
ENDSCAN
objexcel.visible=.t.
_CLIPTEXT="" && vaciamos el portapapeles
Esto funciona perfectamente, el único problema que tengo es que al exportar
un campo de tipo fecha me lo modifica y le cambio el formato, es decir me
cambia de DDMMYYYY a MMDDYYYY, incluso habiendo puesto SET DATE DMY.
¿Alguién me puede decir porque ocurre esto y como puede solucionarse?
Muchas gracias por anticipado.
Un saludo,
José Luis.