Problema leer Excel
Publicado por Kevin (18 intervenciones) el 19/10/2011 14:51:44
Buen dia foro. Necesito q me ayuden con lo siguiente: tengo un Excel de 3427 filas y quiero leerlo y guardar la informacion en una tabla en genexus. Estoy haciendo lo sigueinte:
&CargaExcel.Open("C:\OBSERVACIONES MEDITAR.xls")
&ContadorRenglon = 2
If &CargaExcel.ErrCode <>0
&Msj = 'No se puede abrir la planilla'
Else
Do While &CargaExcel.Cells(&ContadorRenglon,1).Text <> ''
&Afiliado = &CargaExcel.Cells(&ContadorRenglon,3).Text
&Afi=StrReplace(&Afiliado, "/", ".")
&NumAfi=VAL(&Afi)
&NAfi = TRUNC(&NumAfi, 0)
&FechaIni = &CargaExcel.Cells(&ContadorRenglon,5).Text
&FechaIE=StrReplace(&FechaIni, "/", "")
&Ani=SUBSTR(&FechaIE, 5, 4)
&Mess=SUBSTR(&FechaIE, 3, 2)
&Diaa=SUBSTR(&FechaIE, 1, 2)
&DiaaMess=CONCAT(&Mess,&Diaa)
&Fech=CONCAT(&Ani,&DiaaMess)
&Fechaa=VAL(&Fech)
&fechafei = nullvalue(&fechafei)
RCPC001.Call(&Fechaa,&fechafei)
&FechaRec = &CargaExcel.Cells(&ContadorRenglon,11).Text
&Fec=StrReplace(&FechaRec, "/", "")
&An=SUBSTR(&Fec, 5, 4)
&Me=SUBSTR(&Fec, 3, 2)
&Di=SUBSTR(&Fec, 1, 2)
&DiMe=CONCAT(&Me,&Di)
&Fe=CONCAT(&An,&DiMe)
&Fecha=VAL(&Fe)
&fechafec = nullvalue(&fechafec)
RCPC001.Call(&Fecha,&fechafec)
&CMEAYN = &CargaExcel.Cells(&ContadorRenglon,1).Text
&CMENPE = &CargaExcel.Cells(&ContadorRenglon,2).Number
&CMEPRG = &CargaExcel.Cells(&ContadorRenglon,4).Text
&CMEOBR = &CargaExcel.Cells(&ContadorRenglon,6).Text
&CMEDOM = &CargaExcel.Cells(&ContadorRenglon,7).Text
&CMEPRE = &CargaExcel.Cells(&ContadorRenglon,8).Text
&CMEPRA = &CargaExcel.Cells(&ContadorRenglon,9).Text
&CMECPR = &CargaExcel.Cells(&ContadorRenglon,10).Text
&CMEENM = &CargaExcel.Cells(&ContadorRenglon,12).Text
&CMERET = &CargaExcel.Cells(&ContadorRenglon,13).Text
&CMEMRE = &CargaExcel.Cells(&ContadorRenglon,14).Number
&CMEOBS = &CargaExcel.Cells(&ContadorRenglon,15).Text
if &CMENPE = 0
FOR EACH O01NRO
WHERE O01NRO = &NAfi
&CMENPE = O01NPE
ENDFOR
endif
New
CMEAYN = &CMEAYN
CMENPE = &CMENPE
CMEAFI = &NAfi
CMEPRG = &CMEPRG
CMEFEI = &fechafei
CMEOBR = &CMEOBR
CMEDOM = &CMEDOM
CMEPRE = &CMEPRE
CMEPRA = &CMEPRA
CMECPR = &CMECPR
CMERAS = &fechafec
CMEENM = &CMEENM
CMERET = &CMERET
CMEMRE = &CMEMRE
CMEOBS = &CMEOBS
WHEN DUPLICATE
FOR EACH CMENPE CMERAS
WHERE &CMENPE = CMENPE
WHERE &fechafec = CMERAS
CMEAYN = &CMEAYN
CMEAFI = &NAfi
CMEPRG = &CMEPRG
CMEFEI = &fechafei
CMEOBR = &CMEOBR
CMEDOM = &CMEDOM
CMEPRE = &CMEPRE
CMEPRA = &CMEPRA
CMECPR = &CMECPR
CMEENM = &CMEENM
CMERET = &CMERET
CMEMRE = &CMEMRE
CMEOBS = &CMEOBS
ENDFOR
EndNew
&ContadorRenglon = &ContadorRenglon + 1
EndDo
EndIf
&CargaExcel.Close()
Cuando ejecuto este procedimiento queda ejecutando y tarda muchisimo tiempo y termina mostrandome que no se puede ver la informacion o algo asi y no carga nada en la tabla..
Alguien me dice como hacerlo?
&CargaExcel.Open("C:\OBSERVACIONES MEDITAR.xls")
&ContadorRenglon = 2
If &CargaExcel.ErrCode <>0
&Msj = 'No se puede abrir la planilla'
Else
Do While &CargaExcel.Cells(&ContadorRenglon,1).Text <> ''
&Afiliado = &CargaExcel.Cells(&ContadorRenglon,3).Text
&Afi=StrReplace(&Afiliado, "/", ".")
&NumAfi=VAL(&Afi)
&NAfi = TRUNC(&NumAfi, 0)
&FechaIni = &CargaExcel.Cells(&ContadorRenglon,5).Text
&FechaIE=StrReplace(&FechaIni, "/", "")
&Ani=SUBSTR(&FechaIE, 5, 4)
&Mess=SUBSTR(&FechaIE, 3, 2)
&Diaa=SUBSTR(&FechaIE, 1, 2)
&DiaaMess=CONCAT(&Mess,&Diaa)
&Fech=CONCAT(&Ani,&DiaaMess)
&Fechaa=VAL(&Fech)
&fechafei = nullvalue(&fechafei)
RCPC001.Call(&Fechaa,&fechafei)
&FechaRec = &CargaExcel.Cells(&ContadorRenglon,11).Text
&Fec=StrReplace(&FechaRec, "/", "")
&An=SUBSTR(&Fec, 5, 4)
&Me=SUBSTR(&Fec, 3, 2)
&Di=SUBSTR(&Fec, 1, 2)
&DiMe=CONCAT(&Me,&Di)
&Fe=CONCAT(&An,&DiMe)
&Fecha=VAL(&Fe)
&fechafec = nullvalue(&fechafec)
RCPC001.Call(&Fecha,&fechafec)
&CMEAYN = &CargaExcel.Cells(&ContadorRenglon,1).Text
&CMENPE = &CargaExcel.Cells(&ContadorRenglon,2).Number
&CMEPRG = &CargaExcel.Cells(&ContadorRenglon,4).Text
&CMEOBR = &CargaExcel.Cells(&ContadorRenglon,6).Text
&CMEDOM = &CargaExcel.Cells(&ContadorRenglon,7).Text
&CMEPRE = &CargaExcel.Cells(&ContadorRenglon,8).Text
&CMEPRA = &CargaExcel.Cells(&ContadorRenglon,9).Text
&CMECPR = &CargaExcel.Cells(&ContadorRenglon,10).Text
&CMEENM = &CargaExcel.Cells(&ContadorRenglon,12).Text
&CMERET = &CargaExcel.Cells(&ContadorRenglon,13).Text
&CMEMRE = &CargaExcel.Cells(&ContadorRenglon,14).Number
&CMEOBS = &CargaExcel.Cells(&ContadorRenglon,15).Text
if &CMENPE = 0
FOR EACH O01NRO
WHERE O01NRO = &NAfi
&CMENPE = O01NPE
ENDFOR
endif
New
CMEAYN = &CMEAYN
CMENPE = &CMENPE
CMEAFI = &NAfi
CMEPRG = &CMEPRG
CMEFEI = &fechafei
CMEOBR = &CMEOBR
CMEDOM = &CMEDOM
CMEPRE = &CMEPRE
CMEPRA = &CMEPRA
CMECPR = &CMECPR
CMERAS = &fechafec
CMEENM = &CMEENM
CMERET = &CMERET
CMEMRE = &CMEMRE
CMEOBS = &CMEOBS
WHEN DUPLICATE
FOR EACH CMENPE CMERAS
WHERE &CMENPE = CMENPE
WHERE &fechafec = CMERAS
CMEAYN = &CMEAYN
CMEAFI = &NAfi
CMEPRG = &CMEPRG
CMEFEI = &fechafei
CMEOBR = &CMEOBR
CMEDOM = &CMEDOM
CMEPRE = &CMEPRE
CMEPRA = &CMEPRA
CMECPR = &CMECPR
CMEENM = &CMEENM
CMERET = &CMERET
CMEMRE = &CMEMRE
CMEOBS = &CMEOBS
ENDFOR
EndNew
&ContadorRenglon = &ContadorRenglon + 1
EndDo
EndIf
&CargaExcel.Close()
Cuando ejecuto este procedimiento queda ejecutando y tarda muchisimo tiempo y termina mostrandome que no se puede ver la informacion o algo asi y no carga nada en la tabla..
Alguien me dice como hacerlo?
Valora esta pregunta
0