Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ein Excel-Sheet grundsätzlich in einem NEUEN Excel öffnen (https://www.delphipraxis.net/137221-ein-excel-sheet-grundsaetzlich-einem-neuen-excel-oeffnen.html)

HolgerCW 16. Jul 2009 14:41


Ein Excel-Sheet grundsätzlich in einem NEUEN Excel öffnen
 
Hallo zusammen,

wie kann ich eine Excel-Datei grundsätzlich in einer neuen Excel-Anwendung öffnen ?

Wenn ein Excel-Anwendung schon geöffnet ist, soll das Excel-Blatt nicht in dem schon geöffneten Excel als weiteres Fenster geöffnet werden, sondern es soll vorher grundsätzlich eine neue Excel-Anwendung gestartet werden.

Bisher mache ich es hiermit:

Delphi-Quellcode:
ShellExecute(Application.Handle, 'OPEN', pchar(C:\Test\Test.xls'), NIL, NIL, SW_NORMAL);
Dieser Aufruf startet die Test.xls aber in dem schon aktiven Excel.

Gruss

Holger

Alien_F 16. Jul 2009 14:47

Re: Ein Excel-Sheet grundsätzlich in einem NEUEN Excel öffne
 
Es gibt in den Optionen von Excel auf dem Karteireiter Ansicht den Haken "Fenster in Taskleiste". Meinst du das ?

HolgerCW 16. Jul 2009 15:14

Re: Ein Excel-Sheet grundsätzlich in einem NEUEN Excel öffne
 
Nein,

so würde ich es ohne Delphi machen:

1. Ich starte Excel, ich öffne eine Excel-Datei
2. Ich starte nochmal Excel und öffne eine andere Excel-Datei

Nun habe ich zweimal Excel offen mit jeweils einer Excel-Datei.

Das gleiche soll beim Aufruf aus Delphi gemacht werden. Mit meinem angegeben Aufruf passiert nur folgendes:

1. Ich starte Excel, ich öffne eine Excel-Datei
2. Ich öffne eine weitere Excel-Datei

Und dies soll nicht so sein.

Gruss

Holger

Alien_F 16. Jul 2009 15:35

Re: Ein Excel-Sheet grundsätzlich in einem NEUEN Excel öffne
 
Vielleicht so: Man könnte TExcelApplication benutzen und müsste jedes Mal eine neuen Instanz davon erzeugen. Ich sehe gerade, dass es da auch das Property "ConnectKind" gibt. Dieses kann man auf den Wert "ckNewInstance" stellen.

HolgerCW 16. Jul 2009 15:41

Re: Ein Excel-Sheet grundsätzlich in einem NEUEN Excel öffne
 
Ich habe es jetzt mal so versucht:

Delphi-Quellcode:
var
 XLApp: Variant;
const
  xlWBATWorksheet = -4167;
begin
XLApp := CreateOleObject('Excel.Application');
XLApp.Visible := True;
XLApp.Workbooks.Add[XLWBatWorksheet];
XLApp.Workbooks.Open('C:\Test.xls');
Damit klappt es sogar. Ist das so in Ordnung, oder gibt es eine bessere Lösung ?

Gruss

Holger

HolgerCW 16. Jul 2009 15:43

Re: Ein Excel-Sheet grundsätzlich in einem NEUEN Excel öffne
 
Zitat:

Zitat von Alien_F
Ich sehe gerade, dass es da auch das Property "ConnectKind" gibt. Dieses kann man auf den Wert "ckNewInstance" stellen.

Wo gibt es das Property ? Bei shellexecute oder wo ?

Gruss

Holger

Alien_F 16. Jul 2009 15:47

Re: Ein Excel-Sheet grundsätzlich in einem NEUEN Excel öffne
 
Ist in der VCL drin. Karteireiter "Server". Einfach mal so´n TExcelApplication auf´s Form ziehen. Dann sieht man´s im Objektinspektor. Aber mit CreateOleObject machst du ja im Prinzip das gleiche.

HolgerCW 16. Jul 2009 15:49

Re: Ein Excel-Sheet grundsätzlich in einem NEUEN Excel öffne
 
Vielen dank für Deine Hilfe.

Gruss

Holger


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 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