ERROR al Leer desde Excel

Post Reply
un_jeepero
Posts: 31
Joined: Fri Mar 17, 2006 2:04 pm

ERROR al Leer desde Excel

Post by un_jeepero »

Estimados Ayuda por favor...

Necesito leer desde una planilla Excel la informacion que genera el usuario, este archivo tiene 9 Columnas e indefinidas Filas, la cosa es que NO logro entender por que siempre me deja fuera de la lectura las ultimas 2 o 3 filas.
este codigo utilizo:

oExcel := TOleAuto():New( "Excel.Application" )
cFile := cGetFile("*.XLS", "Seleccione Fichero")
if empty( cFile)
retur nil
endif

oExcel:WorkBooks:Open( cFile )
oHoja := oExcel:ActiveSheet

nRows := oHoja:UsedRange:Rows:Count() ---->Esto NO lee todas las filas, siempre falta por leer 1 o 2
nCols := oHoja:UsedRange:Columns:Count()

FOR nRow := 01 TO (nRows)
AAdd( ::aDatos,{NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL,NIL } )
FOR nCol := 1 TO nCols
nAt := Len( ::aDatos )
xValue := oHoja:Cells(nRow,nCol):Value
::aDatos[nAt][nCol] := xValue
SysRefresh()
NEXT
Memory(-1)
NEXT
oExcel:Quit()

alguien tiene alguna opinion?? existe otra forma de leer informacion desde planillas Excel.

gracias a todos

Mauro
User avatar
mmercado
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: ERROR al Leer desde Excel

Post by mmercado »

Hola Mauro:

Recuerda que en en Excel la primera línea es la línea 0 (no la 1)

Un abrazo.

Manuel Mercado.
manuelmercado at prodigy dot net dot mx
un_jeepero
Posts: 31
Joined: Fri Mar 17, 2006 2:04 pm

Re: ERROR al Leer desde Excel

Post by un_jeepero »

Estimado Manuel

Los datos a leer parten en la linea 1, y aunque partieran en la 0.

NO se leen todas las Filas
nRows := oHoja:UsedRange:Rows:Count() ---->Esto NO lee todas las filas, siempre falta por leer 1 o 2
nCols := oHoja:UsedRange:Columns:Count()

Salu2, sigo buscan la solución.
User avatar
Alfredo Arteaga
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico
Contact:

Re: ERROR al Leer desde Excel

Post by Alfredo Arteaga »

Enviame una hoja y la rutina con que estas importando los datos a soporte@despachoarteaga.com.mx. En mi caso funciona (eso creo).
un_jeepero
Posts: 31
Joined: Fri Mar 17, 2006 2:04 pm

Re: ERROR al Leer desde Excel

Post by un_jeepero »

Estimado Alfredo

Muchas gracias por tu cooperación, te prepare un compacto y lo envie al correo que me indicaste.

muchas gracias esta cosa me tiene loco....

salu2

Mauro
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: ERROR al Leer desde Excel

Post by Armando »

Mauro:

Me parece que el problema no esta donde lo señalas, creo que el problema esta en tu código
de los FOR .. NEXT

Abre el libro con Excel y cuenta cuantas filas hay, despues metes un MsgInfo()
en tu código inmediatamente despues de contar las filas para ver cuanto te
reporta

Code: Select all

nRows := oHoja:UsedRange:Rows:Count() 
MsgInfo(nRows) // Esto debe ser igual a los renglones que contaste
 
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
un_jeepero
Posts: 31
Joined: Fri Mar 17, 2006 2:04 pm

Re: ERROR al Leer desde Excel

Post by un_jeepero »

Estimado Armando

Eso fue lo que primero revise!!!, siempre tengo mas filas en la planilla Excel que las que se leen con
nRows := oHoja:UsedRange:Rows:Count()
ejemplo:
Planilla tiene 10 filas, y a veces oHoja:UsedRange:Rows:Count() arroja == 8 o 9, no entiendo por que deja algunas afuera.
tambien en la planilla las he puesto en diferentes posiciones las ultimas al principio, las de al medio al ultimo, la primeras al final.....

el For.. Next guarda bien los datos que se logran leer.. el problema esta antes del for..next

sigo buscando.

Gracias.

Mauro
Armando wrote:Mauro:

Me parece que el problema no esta donde lo señalas, creo que el problema esta en tu código
de los FOR .. NEXT

Abre el libro con Excel y cuenta cuantas filas hay, despues metes un MsgInfo()
en tu código inmediatamente despues de contar las filas para ver cuanto te
reporta

Code: Select all

nRows := oHoja:UsedRange:Rows:Count() 
MsgInfo(nRows) // Esto debe ser igual a los renglones que contaste
 
Saludos
User avatar
Alfredo Arteaga
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico
Contact:

Re: ERROR al Leer desde Excel

Post by Alfredo Arteaga »

Te comento Mauricio:

1. Tome tu rutina y la agregué a una de mis aplicaciones. Hay algo extraño no la pude ejecutar (NPI).
2. Tome tus hojas y las abrí con una rutina que importa los datos de clientes y en efecto NO se detecta la cantidad de filas existentes (-2).
3. Copié el contenido de las hojas a un nuevo archivo sin formato y SI FUNCIONO.

Si ser una conclusión convincente puedo decir que el formato de las hojas está influyendo en la lectura. Desconozco si hay alguna opción o parámetro para indicarle a la clase que tome el contenido de la hoja sin considerar el formato.

Saludos,
Alfredo Arteaga
un_jeepero
Posts: 31
Joined: Fri Mar 17, 2006 2:04 pm

Re: ERROR al Leer desde Excel

Post by un_jeepero »

Estimado Alfredo

Muchas gracias por tu tiempo.

tambien pienzo que es algo con el formato de la planilla Excel.

intentare explicarle al cliente que no le asigne formato a sus planillas, para que así puedan ser leidas NO veo otra solución de momento.

muchas gracias nuevamente.

salu2

Mauro.

Alfredo Arteaga wrote:Te comento Mauricio:

1. Tome tu rutina y la agregué a una de mis aplicaciones. Hay algo extraño no la pude ejecutar (NPI).
2. Tome tus hojas y las abrí con una rutina que importa los datos de clientes y en efecto NO se detecta la cantidad de filas existentes (-2).
3. Copié el contenido de las hojas a un nuevo archivo sin formato y SI FUNCIONO.

Si ser una conclusión convincente puedo decir que el formato de las hojas está influyendo en la lectura. Desconozco si hay alguna opción o parámetro para indicarle a la clase que tome el contenido de la hoja sin considerar el formato.

Saludos,
Alfredo Arteaga
Post Reply