FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Abrir mas de una Hoja de Excel
Posts: 189
Joined: Fri Oct 14, 2005 12:33 AM
Abrir mas de una Hoja de Excel
Posted: Tue Aug 16, 2011 10:41 PM
Hola a tod@s,

A ver si alguien ha dado con esto, por que lo que soy yo....

Necesito consultar dos hojas de excel en un proceso. Primero abro una, consulto lo que necesito (mas bien, lo almaceno en un arreglo), cierro esta hoja, abro la segunda, y consulto en esta segunda hoja, pero que me ocurre:

- Cuando "cierro" la primera hoja, esto no se hace, pues se conserva en memoria (se visualiza todavia el EXCEL trabajando en el Administrador de Tareas de Windows), y

- para cuando abro la segunda hoja, a pesar de utilizar variables para los objetos distintas, me sigue activo el primer objeto.

¿QUE PASA?

El trozo de codigo es como sigue:
Code (fw): Select all Collapse
cLineaAh  := "oClientes:Load(),"
cLineaAh  += "AADD(aAho1,{STRZERO(VAL(GV(oHoja,nRow,1,'C')),8,0),GV(oHoja,nRow,5,'N'),GV(oHoja,nRow,6,'N')}),"
cLineaAh  += "oClientes:GoTop(),nRow++"

oExcel := TOleAuto():New( "Excel.Application" )
oExcel:WorkBooks:Open( (mio:=cGetFile( "*.XLS", "Seleccione el Archivo de Excel c/Ahorros PRIMERA quincena",,,,.T. )) )
oHoja:=oExcel:Get( "ActiveSheet" )
nRows:=oHoja:UsedRange:Rows:Count()
nRow:=6
CLIENTES->( DBEVAL( Compile(cLineaAh),,COMPILE('nRow<=nRows') ) )
Memory(-1)
oExcel:Quit()
oExcel := NIL

oExcel := TOleAuto():New( "Excel.Application" )
oExcel:WorkBooks:Open( (mio:=cGetFile( "*.XLS", "Seleccione el Archivo de Excel",,,,.T. )) )
cTime1 := TIME()
oHoja  := oExcel:Get( "ActiveSheet" )

nRows  := oHoja:UsedRange:Rows:Count()  // Cantidad de filas con datos

nRow   := 2
d1     := GV(oHoja, nRow,3, "N")  // esta variable me retorna el contenido de la primera hoja !
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Abrir mas de una Hoja de Excel
Posted: Wed Aug 17, 2011 01:39 AM
Prueba asi:
Code (fw): Select all Collapse
......
oWorkBook:CLOSE( .F. )    //cierra el libro..
oExcel:Quit()
oExcel := NIL
........

Salu2
Posts: 189
Joined: Fri Oct 14, 2005 12:33 AM
Re: Abrir mas de una Hoja de Excel
Posted: Wed Aug 17, 2011 01:53 AM
Willy,

Gracias por tu respuesta. Cuando se ejecuta

Code (fw): Select all Collapse
oWorkBook:Close(.F.)


Me da el error

Error 1001
DISP_E_MEMBERNOTFOUND

¿Que es esto?

Abrazos,
Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Abrir mas de una Hoja de Excel
Posted: Wed Aug 17, 2011 02:39 AM
MMMM,,, extraño...(al menos para mi) abre y cierra de esta manera:

Code (fw): Select all Collapse
cFile := cGetFile( "XLS (*.xls)|*.xls| XLSX (*.xlsx)|*.xlsx", ;
                     "Seleccione Lista de Precios en Excel", 1 )

cFile := ALLTRIM(cFile)
If EMPTY(cFile)
  Return(.f.)
EndIF

oExcel := TOleAuto():New( "Excel.Application" )
oExcel:Visible := .f. // .t. por si quieres ver la hoja abierta
oWorkbook      := oExcel:WorkBooks:OPEN(cFile)
oHoja          := oExcel:Get( "ActiveSheet" )

nRows := oHoja:UsedRange:Rows:Count()
...
..
.
..
...
oWorkBook:CLOSE( .F. )   
oExcel:Quit()
oExcel := NIL
Posts: 189
Joined: Fri Oct 14, 2005 12:33 AM
Re: Abrir mas de una Hoja de Excel
Posted: Wed Aug 17, 2011 02:56 AM

Willy,

Gracias por el detalle. No estaba utilizando el objeto oWorkBook.

Lo pruebo y te aviso.

Abazos,

Julio Llinás
Visita mi Blog en http://mangucybernetico.blogspot.com/
xHarbour 1.1.0 + FWH810 + Borland 5.5.1

Continue the discussion