Abrir mas de una Hoja de Excel

Post Reply
User avatar
jllinas
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic
Contact:

Abrir mas de una Hoja de Excel

Post by jllinas »

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

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
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Abrir mas de una Hoja de Excel

Post by Willi Quintana »

Prueba asi:

Code: Select all

......
oWorkBook:CLOSE( .F. )    //cierra el libro..
oExcel:Quit()
oExcel := NIL
........
 
Salu2
User avatar
jllinas
Posts: 189
Joined: Fri Oct 14, 2005 12:33 am
Location: Santo Domingo, Dominican Republic
Contact:

Re: Abrir mas de una Hoja de Excel

Post by jllinas »

Willy,

Gracias por tu respuesta. Cuando se ejecuta

Code: Select all

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
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Re: Abrir mas de una Hoja de Excel

Post by Willi Quintana »

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

Code: Select all

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

Re: Abrir mas de una Hoja de Excel

Post by jllinas »

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
Post Reply