Estimado Todos:
Buenas tardes es mi primera intervención en el foro, asi mismo como se van a percatar mis primeros pasos en el ambiente de programación con este herramienta.
La problematica para la cual solicito su valioso apoyo es que estoy tratando de modificar el siguiente codigo el cual actualmente convierte archivos de tipo DOC a TXT y mi solicitud es si alguien de los expertos del foro me pueden apoyar a modificarlo para que convierta archivos XLS a CSV, el codigo es el siguiente:
cRuta =
GetFile('DOC', 'Archivo', "Abrir", 0, 'Seleccione el archivo de Word a Convertir')If Empty(cRuta)
Return .F.
EndIf
oW =
CreateObject("Word.Application")With oW
.DisplayAlerts = .F.
cNewTxt = ForceExt(cRuta, 'Txt')
.Documents.
Open(cRuta).ActiveDocument.SaveAs(cNewTxt, 2, .F., '', .F., '', .F., .F., .F., .F., .F., .T., .F.)
.Documents(1).
Close
.Quit
EndWith
Release
oW
Wait Window
"Documento guardado en ... " + cNewTxt
Un amigo me dio otro codigo para que yo lo fuera modificando, lo que he conseguido es que si me lee el archivo de excel pero al momento de pasarlo al notepad me lo deja en blanco, perdon pero como les digo son mis primeras intervenciones con Visual Fox Pro, este es el otro codigo:
*** Lee_Excel_Genera_Csv.prg
***
CLOSE DATABASES
*** Seleccionar archivo de Excel
XlsOpen = GETFILE('xls', 'Archivo:', 'Recibir',0, 'Archivo de Infonavit para Importar')IF LEN(XlsOpen)>0SET DATE TO DMY
CLOSE DATABASES
*** Crea tablaDELETE FILE tempo.dbf
CREATE TABLE
tempo (dat1 C(10), dat2 C(11), dat3 C(13), dat4 N(2,0))CLOSE DATABASES
SELECT
1USE tempo
*** Genera acceso al archivo de Excel (objeto)Excel=CreateObject("Excel.Application")
Excel.
Application.Visible=.F.Excel.Workbooks.Open(XlsOpen)
WITH Excel.Sheets(1).Select
FOR
ren=2 to 65536vexA='A'+ALLTRIM(STR(ren))
vdat1Type=
VARTYPE(.Range(vexA).Value)IF vdat1Type='X'EXIT
ENDIF
IF
vdat1Type='N'vdat1=ALLTRIM(STR(.Range(vexA).Value))
ELSE vdat1=ALLTRIM(.Range(vexA).Value)ENDIF
vexB='B'+ALLTRIM(STR(ren))vdat2Type=VARTYPE(.Range(vexB).Value)
IF vdat2Type='N'vdat2=TRANSFORM(.Range(vexB).Value,'@L 99999999999')
ELSE vdat2=ALLTRIM(.Range(vexB).Value)ENDIF
vexC='C'+ALLTRIM(STR(ren))vdat3Type=VARTYPE(.Range(vexC).Value)
IF vdat3Type='N'vdat3=ALLTRIM(STR(.Range(vexC).Value))
ELSE vdat3=ALLTRIM(.Range(vexC).Value)
ENDIF IF LEN(vdat3)=12
vdat3=' '+vdat3
ENDIF
vexD='D'+ALLTRIM(STR(ren))vdat4Type=VARTYPE(.Range(vexD).Value)
IF vdat4Type='N'vdat4=.Range(vexD).Value
ELSE
vdat4=VAL(ALLTRIM(.Range(vexD).Value))ENDIF
*** vexAN='AN'+ALLTRIM(STR(ren))
*** vCvemovType=VARTYPE(.Range(vexAN).Value)
*** IF vCvemovType='C'
*** vCvemov=ALLTRIM(.Range(vexAN).Value)
*** ELSE
*** vCvemov=ALLTRIM(STR(.Range(vexAN).Value))
*** ENDIF
***
*** vexAO='AO'+ALLTRIM(STR(ren))
*** vF_movType=VARTYPE(.Range(vexAO).Value)
*** IF vF_movType='C'
*** vF_mov1=ALLTRIM(.Range(vexAO).Value)
***
*** IF LEN(vF_mov1)=9 AND SUBSTR(vF_mov1,2,1)='/'
*** vF_mov1='0'+SUBSTR(vF_mov1,1,1)+'/'+SUBSTR(vF_mov1,3,2)+'/'+RIGHT(vF_mov1,4)
*** ENDIF
*** ELSE
*** IF vF_movType='T'
*** vF_mov1=ALLTRIM(TTOC(.Range(vexAO).Value))
*** ENDIF
*** IF vF_movType='D'
*** vF_mov1=ALLTRIM(DTOC(.Range(vexAO).Value))
*** IF YEAR(vF_mov1)=0
*** SET DATE TO MDY
*** vF_mov1=ALLTRIM(DTOC(.Range(vexAO).Value))
*** SET DATE TO DMY
*** ENDIF
*** ENDIF
*** ENDIF
*** vF_mov=CTOD(vF_mov1)
*** IF LEN(vTipo)=0
*** EXIT
*** ELSE
SELECT 1SET DATE TO DMY
APPEND BLANK
REPLACE
dat1 WITH vdat1REPLACE dat2 WITH vdat2
REPLACE dat3 WITH vdat3
*** REPLACE dat4 WITH vdat4
*** REPLACE nss WITH vnss
*** REPLACE rfc WITH vrfc
*** REPLACE curp WITH vcurp
*** REPLACE credinfo WITH vcredinfo
*** REPLACE f_credito WITH vf_credito
*** REPLACE mov WITH vmov
*** REPLACE nombrec WITH vnombrec
*** REPLACE salario WITH vsalario
*** REPLACE tipotrab WITH vtipotrab
*** REPLACE jornada WITH vjornada
*** REPLACE diascot WITH vdiascot
*** REPLACE incmes WITH vincmes
*** REPLACE faltasmes WITH vfaltasmes
*** REPLACE cuotafija WITH vcuotafija
*** REPLACE excedente WITH vexcedente
*** REPLACE pre_din WITH vpre_din
*** REPLACE pre_esp WITH vpre_esp
*** REPLACE rie_tra WITH vrie_tra
*** REPLACE inv_vida WITH vinv_vida
*** REPLACE guarderias WITH vguarderias
*** REPLACE act_se WITH vact_se
*** REPLACE diascotbim WITH vdiascotbim
*** REPLACE diasincbim WITH vdiasincbim
*** REPLACE diasausbim WITH vdiasausbim
*** REPLACE retiro WITH vretiro
*** REPLACE act_ret WITH vact_ret
*** REPLACE cesantia WITH vcesantia
*** REPLACE vejez WITH vvejez
*** REPLACE act_ces WITH vact_ces
*** REPLACE apor_vol WITH vapor_vol
*** REPLACE pat_info WITH vpat_info
*** REPLACE amortiz WITH vamortiz
*** REPLACE paterno WITH vpaterno
*** REPLACE materno WITH vmaterno
*** REPLACE nombre WITH vnombre
*** REPLACE cvemov WITH vcvemov
*** REPLACE f_mov WITH vf_mov
*** ENDIF
WAIT WINDOW 'Cargando -> '+TRANSFORM(ren-1,'@L 99999') NOWAIT
ENDFOR
ENDWITH
Excel.ActiveWorkbook.Close
Excel.Quit=SYS(1016)
*** Genera archivo .CSV
CLOSE DATABASES SELECT 1
USE tempovDir=SYS(5)+SYS(2003)
vFileCsv=vDir+'\Archivo.csv'
! Attrib -r &vFileCsv
arch='Archivo.csv'
DELETE FILE arch
canal=
FCREATE(arch,0)IF canal<0
=
FCLOSE(canal)WAIT WINDOW NOWAIT "No se puede crear el archivo <'+arch+'>"
ELSE*** Loop para generar archivo .csv
*** DO WHILE NOT EOF()
*** vfecha=IIF(YEAR(fecha_ini)>0,TRANSFORM(YEAR(fecha_ini),'@L 9999-')+TRANSFORM(MONTH(fecha_ini),'@L 99-')+TRANSFORM(DAY(fecha_ini),'@L 99'),'')
*** vfechas=IIF(YEAR(fec_susp)>0,TRANSFORM(YEAR(fec_susp),'@L 9999-')+TRANSFORM(MONTH(fec_susp),'@L 99-')+TRANSFORM(DAY(fec_susp),'@L 99'),'')
*** vfechab=IIF(YEAR(fecha_b)>0,TRANSFORM(YEAR(fecha_b),'@L 9999-')+TRANSFORM(MONTH(fecha_b),'@L 99-')+TRANSFORM(DAY(fecha_b),'@L 99'),'')
*** vfechac=IIF(YEAR(fec_cambio)>0,TRANSFORM(YEAR(fec_cambio),'@L 9999-')+TRANSFORM(MONTH(fec_cambio),'@L 99-')+TRANSFORM(DAY(fec_cambio),'@L 99'),'')
*** IF vTriptico=1
*** IF ALLTRIM(tip)='CFVSM'
*** porc_m=TRANSFORM(tip_porc,'@ 99.9999')
*** ELSE
*** porc_m=TRANSFORM(vporc1,'@ 99.99')
*** ENDIF
*** ELSE
*** IF ALLTRIM(tip)='CFVSM'
*** porc_m=TRANSFORM(tip_porc,'@ 99.9999')
*** ELSE
*** porc_m=TRANSFORM(tip_porc,'@ 99.99')
*** ENDIF
*** ENDIF
*** var_aux=ALLTRIM(STR(periodo))+','+ALLTRIM(rfc_emp)+','+ALLTRIM(nombre)+','+ALLTRIM(STR(cred_eba))+','+;
*** ALLTRIM(nss)+','+ALLTRIM(tip)+','+porc_m+','+ALLTRIM(vfecha)+','+ALLTRIM(vfechas)+','+ALLTRIM(vfechab)+','+;
*** ALLTRIM(STR(camb_mont,10,4))+','+ALLTRIM(vfechac)+','+ALLTRIM(STR(sdi,17,2))+','+ALLTRIM(STR(dias_real))+','+ALLTRIM(STR(base,17,2))+','+;
*** ALLTRIM(STR(calculad,17,2))+','+ALLTRIM(STR(amortz_sua,17,2))+','+ALLTRIM(STR(diferencia,17,2))+','+ALLTRIM(reg_pat)
*** FPUTS(canal,var_aux)
*** SKIP 1
*** ENDDO
ENDIF
=FCLOSE(canal)vDir=SYS(5)+SYS(2003)
vFileCsv=vDir+'\Archivo.csv'
! Attrib +r &vFileCsv
DECLARE INTEGER ShellExecute IN shell32 AS x STRING,STRING,STRING,STRING,STRING,INTEGERa=x(0,'open','c:\windows\notepad.exe',vFileCsv,"",1)
=
MESSAGEBOX("Se creó el archivo .CSV con éxito",64+0+0,"Excel")
ELSE
nAnswer=MESSAGEBOX("Proceso cancelado",0+64+0,' NOTIFICACIÓN')
ENDIF
CLOSE DATABASES
Espero que alguien me pueda apoyar, de antemano mil gracias.