Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-02-2006
mak8888 mak8888 is offline
Miembro
 
Registrado: sep 2003
Posts: 40
Poder: 0
mak8888 Va por buen camino
cerrar objeto de excel

He consultado varias páginas en las que usan una misma misma instrucción xa cerrar excel (xlapp.quit), pero en tiempo de ejecución me dice "Project raised... class EOleError with message 'Method 'Quit' not supported in automation object'...". He probado varias cosas pero no consigo cerrar Excel y no sé pq no puedo obtener ayuda al respecto en el help de delphi.
Este es el código sencillo que uso:

var
XLApp: Variant;
...

código de un botón:
XLApp:= CreateOleObject('Excel.Application');
XLApp.Visible := false;
XLApp.Workbooks.Add(xlWBatWorkSheet);
XLApp.Workbooks[1].WorkSheets[1].Name := 'Delphi Data';

XLApp := XLApp.Workbooks[1].WorkSheets['Delphi Data'];
for i := 1 to 10 do
XLApp.Cells[i, 1] := i;

XLApp.SaveAs('c:\temp2.xls');

código formdestroy:
if not VarIsEmpty(XLApp) then
begin
XLApp.Quit;
XLAPP := Unassigned;
end;

y en ese XLApp.Quit es donde siempre da error :-S
Alguna idea?

Entre otras muchas webs he visto esta de borland: http://community.borland.com/article...,10126,00.html pero veo que hace lo mismo que yo
Incluso he leido aqui: http://community.borland.com/article...,10127,00.html Un apunte referente a que a CreateOleObject hay que pasarle la cadena exacta, en caso contrario dará error. He seguido los pasos, he mirado como dice en el registro y he cambiado el CreateOleObject por "XLApp:= CreateOleObject('Excel.Application.11');" que es lo que indica mi registro, pero seguimos con error en tiempo de ejecución en el .quit.

Gracias a todos de antemano.
Saludos

Última edición por mak8888 fecha: 10-02-2006 a las 19:07:24.
Responder Con Cita
  #2  
Antiguo 10-02-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Creo recordar haber respondido esto antes pero eso fue hace mucho antes, yo uso algo asi y nada de excepciones:
Código:
//Para abrir excel
Variant xlApp;
xlApp = CreateOleObject("Excel.Application");
//hacer visible EXCEL
xlApp.Exec(PropertySet("Visible") << true);
//Acceso a un objeto libro
Variant xlBooks = xlApp.Exec(PropertyGet("Workbooks"));
//crea un nuevo archivo
xlBooks.Exec(Procedure("Add"));
//elige el primer libro de la aplicación
Variant xlBook = xlBooks.Exec(PropertyGet("Item") << 1);
//crea un acceso a un objeto hoja
Variant xlSheets = xlBook.Exec(PropertyGet("Worksheets"));
//Elige una hoja
Variant xlSheet = xlSheets.Exec(PropertyGet("Item") << 1);
//En esta parte es en donde agregas los datos
Variant VRange;
VRange = xlSheet.Exec(PropertyGet("Range") << "A4");
VRange.Exec(PropertySet("Value") << "RUT");
VRange = xlSheet.Exec(PropertyGet("Range") << "B4");
VRange.Exec(PropertySet("Value") << "NOMBRE");
int fila=5;
VRange = xlSheet.Exec(PropertyGet("Range") << "A"+IntToStr(fila));
VRange.Exec(PropertySet("Value") << Edit1->Text);
VRange = xlSheet.Exec(PropertyGet("Range") << "B"+IntToStr(fila));
VRange.Exec(PropertySet("Value") << Edit2->Text);
fila++;
//Guarda el archivo
xlBook.Exec(Procedure("SaveAs") << "\\archivo.xls");
//-------- Cierra excel
//xlApp.Exec(PropertySet("Visible") << false);
xlApp.Exec(Procedure("Quit"));
xlApp.Clear();
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #3  
Antiguo 10-02-2006
mak8888 mak8888 is offline
Miembro
 
Registrado: sep 2003
Posts: 40
Poder: 0
mak8888 Va por buen camino
Hola. Gracias por contestar. Probaré a traducirlo de Borland C a Delphi. Solo una pregunta, ¿que significa el "<<"?
Saludos y gracias de antemano
Responder Con Cita
  #4  
Antiguo 11-02-2006
Avatar de OSKR
OSKR OSKR is offline
Miembro
 
Registrado: nov 2004
Ubicación: San Cristóbal/Táchira/Venezuela
Posts: 389
Poder: 20
OSKR Va por buen camino
Oooops!!! peqeño detalle , es un operador sobrecargado q indica la inclusión de un valor a un objeto, pero concentrate en el " xlApp.Exec(Procedure("Quit"));" , o sea... trata de ejecutarlo dentro del Procedure, si necesitas como sea de un operador así a como de lugar ....entonces,.....este..............bueno.....habra q explorar las propiedades del variant en delphi...deberian ser las mismas......................sino...........pues invoca a un Delphiniano.......q mas te podria decir?
__________________
Los Estados Unidos parecen destinados por la Providencia para plagar la América de miserias a nombre de la libertad."
Simón Bolívar
(Carta al Coronel Inglés Patricio Cambell 05/08/1829).
Responder Con Cita
  #5  
Antiguo 11-02-2006
mak8888 mak8888 is offline
Miembro
 
Registrado: sep 2003
Posts: 40
Poder: 0
mak8888 Va por buen camino
Gracias. Mañana después de haber dormido y estando a buenas con el compilador volveré a probar jejeje.
Ya os contaré.
Saludos y gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Llevar desde Excel a una BD paradox DarkSide Servers 39 08-09-2011 14:58:23
Esperar hasta que se cierre Excel Er_Manué Varios 2 28-10-2005 04:08:18
Cerrar Excel EstebanWeb Servers 5 20-12-2004 10:05:02
Cerrar excel desde una aplicaion delphi VolaRe Servers 0 02-05-2004 20:41:20
al cerrar un libro se me cierra el Excel! haron Servers 0 30-05-2003 11:07:26


La franja horaria es GMT +2. Ahora son las 20:00:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi