Page 1 of 1

CERRAR LIBRO DE EXCEL SIN SALVAR

PostPosted: Sat Jun 27, 2015 1:04 am
by joseluisysturiz
Estoy tratando con varios libros de EXCEL de la siguiente manera...

Code: Select all  Expand view

   oExcel := TOleAuto():New( "Excel.Application" ) // ACTIVANDO EXCEL
   oExcel:Visible := .t. // MOSTRAR O NO HOJA DE EXCEL
   oExcel:Workbooks:Open( cFileXls ) // ABRO EL ARCHIVO
 


asi abro varios libros para leer moviendome entre hojas de algunas columnas y alimentar otro libro de excel en diferentes columnas, hasta alli todo super bien. El detalle que tengo es que quiero despues de leer un libro, cerrarlo sin que me diga, no se porque motivo, que debo guardar los cambios si lo unico que hago es leer datos de las hojas, para cerralo hago lo siguiente:

Code: Select all  Expand view

// CERRANDO EXCEL
   oExcel:WorkBooks:Close()
   oExcel:Application:Quit()
   oExcel:Quit()
   oExcel := Nil
 


y cuando uso la siguiente linea para salvarlo y luego cerrarlo, me da error como si no conociera el methodo...
Code: Select all  Expand view

 oHoja:SaveAs( cFileXls )
 


lo que estoy por los momentos haciendo es abrir todos los libros y luego cerrarlos manualmente, pero el cliente no puede estar haciendo eso y ademas que al abrir gran cantidad de libros, se carga la RAM ya que hace apertura de excel por libro, las ayudas, sugerencias y comentarios sera bienvenidas, gracias, saludos... :shock:

Re: CERRAR LIBRO DE EXCEL SIN SALVAR

PostPosted: Sat Jun 27, 2015 2:47 am
by Armando
José Luis:

Prueba a salvar y luego salir con...
Code: Select all  Expand view

    oExcel:Get("ActiveWorkBook"):SaveAs("Nombre del archivo" + ".Xlsx")
    oExcel:WorkBooks:Close()
    oExcel:Quit()
 


Saludos

Re: CERRAR LIBRO DE EXCEL SIN SALVAR

PostPosted: Sat Jun 27, 2015 2:55 am
by joseluisysturiz
Armando wrote:José Luis:

Prueba a salvar y luego salir con...
Code: Select all  Expand view

    oExcel:Get("ActiveWorkBook"):SaveAs("Nombre del archivo" + ".Xlsx")
    oExcel:WorkBooks:Close()
    oExcel:Quit()
 


Saludos


Armando, gracias por tu respuesta, fue la solucion aunque le hice un pequeño cambios, no use SaveAs(), sino Save(), ya que el saveas(), es para salvarlo con otro nombre y no era la idea, asi que lo hice asi, gracias, saludos... :shock:

Code: Select all  Expand view

   oExcel:Get("ActiveWorkBook"):Save() //SALVA LIBRO ACTIVO
   oExcel:WorkBooks:Close() // CIERRA LIBRO ACTIVO
   oExcel:Quit() // CIERRA EXCEL