FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ERROR al Leer desde Excel
Posts: 31
Joined: Fri Mar 17, 2006 02:04 PM
ERROR al Leer desde Excel
Posted: Fri Jul 31, 2009 02:54 AM

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

Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM
Re: ERROR al Leer desde Excel
Posted: Fri Jul 31, 2009 06:28 AM

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
Posts: 31
Joined: Fri Mar 17, 2006 02:04 PM
Re: ERROR al Leer desde Excel
Posted: Sat Aug 01, 2009 12:35 AM

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.

Posts: 326
Joined: Sun Oct 09, 2005 05:22 PM
Re: ERROR al Leer desde Excel
Posted: Sat Aug 01, 2009 12:54 AM

Enviame una hoja y la rutina con que estas importando los datos a soporte@despachoarteaga.com.mx. En mi caso funciona (eso creo).

Posts: 31
Joined: Fri Mar 17, 2006 02:04 PM
Re: ERROR al Leer desde Excel
Posted: Sat Aug 01, 2009 02:20 AM

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

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: ERROR al Leer desde Excel
Posted: Sat Aug 01, 2009 02:52 AM
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 (fw): Select all Collapse
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
Posts: 31
Joined: Fri Mar 17, 2006 02:04 PM
Re: ERROR al Leer desde Excel
Posted: Sat Aug 01, 2009 03:59 AM
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:Count()
ejemplo:
Planilla tiene 10 filas, y a veces oHoja:UsedRange: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 (fw): Select all Collapse
nRows := oHoja:UsedRange:Rows:Count() 
MsgInfo(nRows) // Esto debe ser igual a los renglones que contaste


Saludos
Posts: 326
Joined: Sun Oct 09, 2005 05:22 PM
Re: ERROR al Leer desde Excel
Posted: Sat Aug 01, 2009 05:27 AM

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

Posts: 31
Joined: Fri Mar 17, 2006 02:04 PM
Re: ERROR al Leer desde Excel
Posted: Sat Aug 01, 2009 04:21 PM
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

Continue the discussion