CC: Excel nach Export schließen

25. Januar 2011 10:58

Hallo Leute,
ich habe zwar schon ein wenig geforscht und auch schon was gefunden, wie zum Beispiel
viewtopic.php?f=40&t=10200&p=50249&hilit=excel+schlie%C3%9Fen#p50249
aber das konnte mir alles nicht wirklich weiter helfen.

Ich habe eine neue Funtkion, die mir Daten nach Excel exportiert. Die Excel Datei ist vordefiniert. Ich öffne diese also, schreibe die Daten weg und speichere diese. Da sie auch nicht mehr mit "GiveUserControl" angezeigt werden soll, sondern direkt geschlossen werden soll, habe ich im Excel-Buffer eine neue Funktion erstellt:

"SaveAndCloseBook"
Code:
XlWrkBk.Save;
XlWrkBk.Close(FALSE);
XlApp.Quit;
CLEAR(XlApp);


Die Funktion zum Export sieht wie folgt aus:
Code:
ExcelBuffer.OpenBook(FileName,SheetName);
ExcelBuffer.CreateSheet('Test','Test,COMPANYNAME,USERID);
ExcelBuffer.SaveAndCloseBook();


Soweit ist auch alles gut, nur leider habe ich dann in meinem Taskmanager immernoch einen Excel-Prozess rumschwirren. Dieser blockiert mir auch die Datei, weshalb sie nur schreibgeschützt geöffnet werden kann.
Eigentlich dachte ich, dass XlApp.Quit; dafür sorgt, dass Excel wirklich geschlossen wird.

Kann mir vielleicht jemand helfen?

Danke und Grüße
Andree

Re: CC: Excel nach Export schließen

25. Januar 2011 18:08

Wird der Excel-Prozess geschlossen, wenn Du den CC schließt?

Volker

Re: CC: Excel nach Export schließen

26. Januar 2011 09:03

Hallo Volker,

wenn ich den CC schließe, beendet sich auch der Excel.

Grüße

Re: CC: Excel nach Export schließen

26. Januar 2011 09:27

Dann würde ich sagen, dass sich Code der in einer Tabelle ausgeführt wird wie eine Single-Instance CU verhält.

Was passiert wenn Du Deinen Code in eine eigene CU auslagerst und diese aufrufst? Sobald die CU abgearbeitet ist, muüßte eigentlich auch das Excel-Objekt geschlossen und aus dem Speicher entfernt werden.

Volker

Re: CC: Excel nach Export schließen

26. Januar 2011 10:00

Bevor ich das ausprobieren kann (die Zeit die Zeit) frage ich mich dann, wieso die Standard Tabelle Excel Buffer in der Funktion "OpenBook" genau den gleichen Code aufweist, wie meine neu erstelle Funktion.
Dies wird aufgerufen, falls das gewählte Excel-Sheet nicht vorhanden ist.

Wir werden wahrscheinlich eh eine andere Lösung verwenden, um unser Problem zu lösen, aber ich werde auf jedenfall noch einmal testen, ob das in einer Codeunit klappt.
Meine Ergebnisse werde ich hier auch noch einmal schreiben.