Abrir mas de una Hoja de Excel

Abrir mas de una Hoja de Excel

Postby jllinas » 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: Select all  Expand view

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
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic

Re: Abrir mas de una Hoja de Excel

Postby Willi Quintana » Wed Aug 17, 2011 1:39 am

Prueba asi:
Code: Select all  Expand view

......
oWorkBook:CLOSE( .F. )    //cierra el libro..
oExcel:Quit()
oExcel := NIL
........
 

Salu2
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Abrir mas de una Hoja de Excel

Postby jllinas » Wed Aug 17, 2011 1:53 am

Willy,

Gracias por tu respuesta. Cuando se ejecuta

Code: Select all  Expand view
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
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic

Re: Abrir mas de una Hoja de Excel

Postby Willi Quintana » Wed Aug 17, 2011 2:39 am

MMMM,,, extraño...(al menos para mi) abre y cierra de esta manera:

Code: Select all  Expand view

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


 
User avatar
Willi Quintana
 
Posts: 1002
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: Abrir mas de una Hoja de Excel

Postby jllinas » Wed Aug 17, 2011 2: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
User avatar
jllinas
 
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 81 guests