![]() |
Excel als Variant starten
Ich möchte gerne Daten aus meinen Programm in Microsoft Excel exportieren. Dazu starte ich Excel wie folgt:
Code:var Excel : Variant; begin try Excel := GetActiveOleObject('Excel.Application'); except try Excel := CreateOleObject('Excel.Application'); except MessageDlg('Microsoft© Excel konnte NICHT initialisiert werden!' + #13#10 + 'Systemfehler: ' + IntToStr(GetLastError) + #13#10 + SysErrorMessage(GetLastError), mtWarning, [mbOk], 0); exit; end; end; Ich möchte das aber nicht mit Excelkomponenten machen. Doch bei GetActiveOleObject bekommt mein Programm immer eine Exception, weil es das Objekt nicht gibt und erzeugt es dann im except. Wenn ich aber das GetActiveOleObject weglasse und es immer wieder neu erzeuge habe ich nachher so viele Prozesse laufen. Ist es auch möglich nur ein Prozess zu starten, ohne Exception? |
Re: Excel als Variant starten
Hallo,
Starte das Programm mal ausserhalb der Delphi IDE. Dann kommt keine Exception. |
Re: Excel als Variant starten
Ja, das ist klar, wegen dem try except. Aber da ich das Programm meistens in der IDE starte, wegen debuggen und so, da nervt es dann immmer.
|
Re: Excel als Variant starten
hallo? einmal f9 drücken und weiter gehts....
wenn dich als programmierer sowas nervt... ich weiß ja nicht. |
Re: Excel als Variant starten
Na gut, ich dachte ich könnte das umgehen. Wenn es sich nicht ändern lässt.
|
Re: Excel als Variant starten
Zitat:
Vielleicht hilft dir da die Suche weiter. MfG Binärbaum |
Re: Excel als Variant starten
in den Debugger Optionen
|
Re: Excel als Variant starten
Delphi-Quellcode:
Bei Excel ist es entgegen der COM-gepflogenheiten auch immer noch nötig die Instanzen mit Quit zu beenden.
var
Excel : Variant; begin Excel := CreateOleObject('Excel.Application'); try ... Dein Code ... finally FWorkBook.Close(SaveChanges:=False); <- Evtl geöffnete Workbooks (XLS-Dateien) auch wieder schließen Excel.Quit; Excel := UnAssigned; end; end; Ist zwar m.E. Blödsinn, da Excel aufgrund der Referenzzählung selbst feststellen könnte wann die Instanz beendet werden kann, aber es ist halt von M$. Da zählen die eigens aufgestellten (COM-)Regeln nichts. |
Re: Excel als Variant starten
Alles klar, danke schön das hilft mir weitr.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz