Si en todos los equipos donde vayas a correr el programa tienen Excel
instalado puedes usar automatización.
Mira este código:
LOCAL loExcel as Object, lnFila as Integer, lnColumna as Integer,
xlsfilas as Integer, lnHdl as Integer
LOCAL lcFile as Character, lcValor as Character, lcVuelca as
Character, lcLinea as Character
lcFile=PUTFILE("Archivo Delimitado","Prueba_Volcado.txt","TXT")
loExcel=CREATEOBJECT("Excel.application") && Creo el objeto de Excell
loExcel.workbooks.OPEN("C:\TuArchivoExcel.xls") && Abro el libro
loExcel.Sheets("Sheet1").Select && Selecciono la pestaña
xlsfilas = loExcel.activesheet.Columns(1).Find("").Row && Cuento las
filas
IF FILE(lcFile)
ERASE (lcFile)
ENDIF
lnHdl=FCREATE(lcFile)
IF lnHdl>0
FOR lnFila=1 TO xlsfilas-1 && Recorro las filas
lcLinea=''
FOR lnColumna= 65 TO 71 && Recorro las columnas. Empiezo por A
CHR(65) y acabo por G CHR(71)
loexcel.Range(CHR(lnColumna)+ALLTRIM(STR(lnFila))).Select
lcValor=loexcel.ActiveCell.Value
* Comprueba el tipo de datos y convierte
DO CASE
CASE TYPE("lcValor")="C"
lcVuelca=ALLTRIM(lcValor)
CASE TYPE("lcValor")="N"
lcVuelca=STRTRAN(ALLTRIM(STR(lcValor,8,2)),'.',',')
CASE TYPE("lcValor")="Y"
lcVuelca=STRTRAN(ALLTRIM(STR(lcValor,8,2)),'.',',')
CASE TYPE("lcValor")="D"
lcVuelca=DTOC(lcValor)
CASE TYPE("lcValor")="T"
lcVuelca=TTOC(lcValor)
OTHERWISE
lcVuelca=''
ENDCASE
lcLinea=lcLinea+lcVuelca+"|" && Voy montando la linea
ENDFOR
=FPUTS(lnHdl,lcLinea) && Grabo la linea en el archivo de Texto
ENDFOR
ENDIF
FCLOSE(lnHdl) && Cierro el fichero de texto
loExcel.quit && Cierro la hoja Excel
RELEASE loExcel
Yo creo que te puede servir
Saludos
Gorka