Ola Amigos,
Gero meus relatórios no excel desta maneira, simplesmente salvo o arquivo DBF como XLS, e ate hoje funciona que e uma maravilha...
FUNCTION EXCEL_EXPEDICAO()
PRIVATE ARQ, aARQ:={}, cName, oBAR, cOldDrive, cOldPath, NOVODIR, oBAR
X_SAVEPATH()
MONTA_NA_TELA()
IF EMPTY(cNAME)
X_RESTOREPATH()
RETURN NIL
ENDIF
ARQ:=NOVODIR+RETIRABRANCO(alltrim(cName))+[.xls]
TITULO:={ [N_NFe],[RAZAO],[Cidade],[Bairro],[CEP],[Volume],[Valor],[Obser],[OK] }
aAdd(aARQ, { TITULO[1] , "C", 10,0 } )
aAdd(aARQ, { TITULO[2] , "C", 20,0 } )
aAdd(aARQ, { TITULO[3] , "C", 20,0 } )
aAdd(aARQ, { TITULO[4] , "C", 20,0 } )
aAdd(aARQ, { TITULO[5] , "C", 10,0 } )
aAdd(aARQ, { TITULO[6] , "C", 10,0 } )
aAdd(aARQ, { TITULO[7] , "N", 12,2 } )
aAdd(aARQ, { TITULO[8] , "C", 40,0 } )
aAdd(aARQ, { TITULO[9] , "C", 04,0 } )
DBCREATE( ARQ, aArq, [DBFNTX], .T. )
CLOSE DATA
USE &ARQ NEW EXCLUSIVE
C:=1 ; CONTA:=0
oBar:=HProgressBar():NewBox( "Imprimindo, "+lTrim(strZERO(C,6))+" De "+lTrim(strZERO(LEN(aNFE_MOTO),6))+" Registro(s)",,,350,,LEN(aNFE_MOTO))
DO WHILE C <= LEN(aNFE_MOTO)
DBAPPEND()
REPLACE N_NFE WITH aNFE_MOTO[C,1]
REPLACE RAZAO WITH SUBSTR(aNFE_MOTO[C,6],1,20)
REPLACE CIDADE WITH SUBSTR(aNFE_MOTO[C,7],1,20)
REPLACE BAIRRO WITH SUBSTR(aNFE_MOTO[C,8],1,20)
REPLACE CEP WITH aNFE_MOTO[C,9]
REPLACE VOLUME WITH aNFE_MOTO[C,4]
REPLACE VALOR WITH VAL(aNFE_MOTO[C,2])
REPLACE OBSER WITH SUBSTR(aNFE_MOTO[C,3],1,40)
REPLACE OK WITH SUBSTR(aNFE_MOTO[C,10],1,4)
C++
oBar:Step("Imprimindo, "+lTrim(strzero(C,6))+" De "+lTrim(Strzero(len(aNFE_MOTO),6))+" Registro(s)")
ENDDO
oBar:CLOSE()
X_RESTOREPATH()
Hwg_Msginfo( [Arquivo salvo em: ]+CRLF+CRLF+arq, [Aviso do sistema] ) //= c:\usuario\desktop\nomedoarquivo.xls
RETURN( nil )
FUNCTION MONTA_NA_TELA()
cName := [Rel_]+SUBSTR(TIME(),1,2)+[_]+SUBSTR(TIME(),4,2)+[_]+SUBSTR(TIME(),7,2)
NovoDir := GetDesktopFolder()+[\]
RETURN NIL
Function GetDesktopFolder()
local objShell, GetDesktopFolder
objShell := CreateObject("WScript.Shell")
GetDesktopFolder := objShell:SpecialFolders:Item("Desktop")
objShell := nil
RETURN GetDesktopFolder