Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   OleObjects con Excel (https://www.clubdelphi.com/foros/showthread.php?t=65362)

Cabanyaler 09-12-2009 11:02:37

OleObjects con Excel
 
Hola actualmente estoy utilizando Ole Objects para el uso de unos calculos diseñados en una hoja Excel desde mi programa de Delphi.

Primero declaro del tipo variant la variable ExcelApp

Código Delphi [-]
ExcelApp, ExcelLibro, ExcelHoja : Variant;

Posteriormenete la creación del Objeto Ole la realizado del siguiente modo:
Código Delphi [-]
ExcelApp := CreateOleObject('Excel.Application');

Uso los calculos que me hacen falta de la hoja excel, recupero sus datos y sigo, pero al cerrar el programa necesito cerrar la hoja excel sin salvar cambios.

El cierre lo ejecuto con la sentencia:

Código Delphi [-]
ExcelApp.Quit;

Pero al cerrar, me pide si deseo grabar los cambios en la hoja excel.

¿Conocéis si debo pasar algún parametro en la sentencia Quit del objeto para asumir que NO deseo grabar cambios en la hoja excel? y cerrarla sin más.



Nota: No he utilizado la sentencia :

Código Delphi [-]
ShellExecute(Handle, nil, 'tskill', 'excel', nil, sw_hide);

porque mata todo proceso relacionado con Excell, y por tanto no deseo que el usuario pudiese tener la excell abierta por su cuenta con cualquier otro trabajo independiente de mi aplicación y que al matar el proceso (y por tanto cierre automático de todas sus hojas excell abiertas) pudiese perder sin salvar el trabajo que pudiese tener en posibles hojas abiertas.

Gracias a todos por vuestra ayuda.;)

Aleca 09-12-2009 11:42:26

proba con ExcelApp.DisplayAlerts[0] := False;
Uso el componente de la Paleta Servers:)

Cabanyaler 09-12-2009 12:32:36

Cita:

Empezado por Aleca (Mensaje 348481)
proba con ExcelApp.DisplayAlerts[0] := False;
Uso el componente de la Paleta Servers:)

Correcto, muchas gracias, pero un pequeño matiz en cuanto a la sintaxis:


Código Delphi [-]
ExcelApp.DisplayAlerts := False;
ExcelApp.Quit;

:)

Aleca 09-12-2009 14:38:54

Cita:

Empezado por Cabanyaler (Mensaje 348485)
Correcto, muchas gracias, pero un pequeño matiz en cuanto a la sintaxis:



Código Delphi [-]ExcelApp.DisplayAlerts := False;
ExcelApp.Quit;




:)

ok, entonces si usas OleObject hay q ponerlo como esta arriba, pero si se usa TExcelApplication hay q usarlo como te lo pase.
Ahi estarian las dos opciones.
Saludos :)


La franja horaria es GMT +2. Ahora son las 16:59:25.

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