Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Auf geöffnetes Exceldokument zugreifen (https://www.delphipraxis.net/138543-auf-geoeffnetes-exceldokument-zugreifen.html)

Ykcim 12. Aug 2009 10:20


Auf geöffnetes Exceldokument zugreifen
 
Hallo Zusammen,

ich habe eine Funktion, mit dieser werden die Daten aus einem StringGrid in eine Exceldatei geschrieben. Die Exceldatei wird dabei nach einer Vorlage (Template) geöffnet.

==> So weit so gut

Jetzt möchte ich aber in einer ButtonClick Prozedure (in der die oben beschriebene Funktion aufgerufen wird) noch weitere Daten in dieses Excelodokument schreiben. Und das bekomme ich nicht. Ich schaffe es nicht, dass ich eine Verbindung zu einem bereits geladenen Dokument bekomme.
Wenn ich die Zusätze direkt in die Funktion mit integriere, ist das kein Problem, aber dann würde ich für jeden Anwendungsfalls meine eigene Funktion benötigen, was ziemlich sinnfrei wäre.

Kann mir jemand erklären, wie ich zu einem bereits geladenen Exceldokument eine Verbindung bekomme und dieses bearbeiten kann?

Vielen Dank im Voraus

Ykcim

Ykcim 12. Aug 2009 11:03

Re: Auf geöffnetes Exceldokument zugreifen
 
Ich brauche wirklich Eure Hilfe, sonst komme ich nicht weiter...

hoika 12. Aug 2009 11:52

Re: Auf geöffnetes Exceldokument zugreifen
 
Hallo,

wenn du es selber geladen hast,
wo ist das Problem ?
Du schreibst doch schon rein,
hast als ein WorkSheet.Connect gemacht ?

Oder willst du, dass der Nutzer selbst das Excel aufmacht
und du dann dich damit verbindest ?
Ist keine gute Idee, finde ich.

Du kannst ja durch die WorkSheets laufen und dein Dokument suchen.

Schau mal hier
1

und such nach
My program always creates a separate instance of Excel


Heiko

Ykcim 12. Aug 2009 13:54

Re: Auf geöffnetes Exceldokument zugreifen
 
Hallo Heiko,

vielen Dank für Deine Antwort.

Excel soll über mein Programm geöffnet werden. Aber nachdem die Funktion abgeschlossen ist, werden alls Variablen wieder frei, sodass ich in der Procedure, in der die Funktion aufgerufen wird, nicht mehr darauf zugreifen kann.

Das ist notwendig, da ich bei einem Button noch in einzelne Felder zusätzliche Dinge eintragen möchte, oder die Datei direkt als e-Mail Anhang benötige ohne sie in Excel zu zeigen oder die Exceldatei nur zum Drucken erstellt und sofort wieder geschlossen wird etc.

Ich habe es jetzt so gelöst (sehr unschön, ich weiß) dass ich die notwendigen Variable aus der Funktion öffentlich gemacht habe, und diese nicht in der aufgerufenen Funktion wieder freigebe, sondern in der Procedure, in der die Funktion aufgerufen wurde, nachdem ich die zusätzlichen Daten / Befehle ausgeführt habe.

Bis jetzt läuft es stabil...

Vielen Dank

Ykcim

hoika 12. Aug 2009 14:30

Re: Auf geöffnetes Exceldokument zugreifen
 
Hallo,

willkommen bei der Interface-Programmierung ;)
Sobald die Interface-Variablen ihren Scope verlassen,
werden die ungültig.

Dein Ansatz mit den "globalen" Variablen ist eine Lösung dafür.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz