Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Datei mit Excel öffnen (https://www.delphipraxis.net/52404-datei-mit-excel-oeffnen.html)

glkgereon 29. Aug 2005 16:27


Datei mit Excel öffnen
 
hi

ich versuche gerade eine Datei mit Excel zu öffnen...

und zwar so (FExcel ist ein OLEVariant, FFileName ein String):

Delphi-Quellcode:
CoInitialize(nil);
FExcel:=CreateOleObject('Excel.Application');
FExcel.Visible:=False;
FExcel.WorkBooks.Open(FFileName, GetUserDefaultLCID);
{FExcel.WorkBooks.Open(FFileName, emptyParam, emptyParam, emptyParam,
             emptyParam, emptyParam, emptyParam, emptyParam, emptyParam,
             emptyParam, emptyParam, emptyParam, emptyParam, GetUserDefaultLCID);}
FExcel.Close(False);
FExcel.Quit;
CoUnInitialize;
hier in der dp habe ich die version mit den vielen emptyParam's gefunden...hier motzt delphi aber, die Anzahl sei nicht korrekt...

bei der version mit nur 2 Parametern kommt folgender fehler:
Zitat:

Im Projekt Project1.exe ist eine Exception der Klasse EOleException mit der Meldung 'Die Open-Methode des Workbooks-Objektes konnte nicht ausgeführt werden' aufgetreten.
liegt das auch an der (event. falschen) parameterzahl, oder ist dies ein neuer fehler? (womit ich einen schritt weiter wäre... :) )

yankee 29. Aug 2005 16:32

Re: Datei mit Excel öffnen
 
Wenn du wirklich nur eine Datei öffnen willst, nimm doch einfach shellexecute...
oder willst du dann mit der exceldatei auch noch was machen?

shmia 29. Aug 2005 16:34

Re: Datei mit Excel öffnen
 
Bei früher Bindung muss man alle Parameter übergeben, die die Funktion verlangt.
Das führt dann zu der ganze Latte vom EmptyParam.
Bei später Bindung, wie du sie benutzt, kann man die Parameter über Namen zuweisen:
Delphi-Quellcode:
FExcel.WorkBooks.Open(Filename:=FFileName, lcid:=GetUserDefaultLCID);
Das sieht auf den 1. Blick sehr ungewöhnlich aus, ist aber zulässig.

PS: WorkBooks.Open liefert ein Workbook zurück. Das speicherst du am Besten gleich in einer Variablen:
Delphi-Quellcode:
var
   myWorkbook : OleVariant;
...
  myWorkbook := FExcel.WorkBooks.Open(Filename:=FFileName, lcid:=GetUserDefaultLCID);

glkgereon 29. Aug 2005 16:45

Re: Datei mit Excel öffnen
 
frühe bindung? späte bindung?

hauptsache es funktioniert...aber:
Zitat:

Im Projekt Project1.exe ist eine Exception der Klasse EOleError mit der Meldung 'Die Methode 'Open' wird vom Automatisierungsobjekt nicht unterstützt' aufgetreten.
@yankee: wärst du zum homepagetreffen erschienen, wüsstest du worum es geht :evil:


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