Page 1 of 1

ERROR al Leer desde Excel

Posted: Fri Jul 31, 2009 2:54 am
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

Re: ERROR al Leer desde Excel

Posted: Fri Jul 31, 2009 6:28 am
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.

Re: ERROR al Leer desde Excel

Posted: Sat Aug 01, 2009 12:35 am
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.

Re: ERROR al Leer desde Excel

Posted: Sat Aug 01, 2009 12:54 am
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).

Re: ERROR al Leer desde Excel

Posted: Sat Aug 01, 2009 2:20 am
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

Re: ERROR al Leer desde Excel

Posted: Sat Aug 01, 2009 2:52 am
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

Re: ERROR al Leer desde Excel

Posted: Sat Aug 01, 2009 3:59 am
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

Re: ERROR al Leer desde Excel

Posted: Sat Aug 01, 2009 5:27 am
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

Re: ERROR al Leer desde Excel

Posted: Sat Aug 01, 2009 4:21 pm
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