![]() |
Re: Fehler bei Excel.workbooks.Open (...)
Hallo,
ich wußte nicht, dass man mit Varianten solche "Schhweinereien" machen kann; also Methoden aufrufen, die man eigentlich nicht kennt, ohne fixe Anzahl von Parametern etc... Also erstmal vielen Dank an Euch !! Jetzt hab ich aber dennoch ein paar Anmerkungen/ Fragen : Folgender Code läßt sich nicht compilieren: Zitat:
Delphi-Quellcode:
schreibe.
var Excel : OleVariant ;
Excel := CreateOleObject('Excel.Application'); x := Excel.Workbooks.Open(strDokument); ... Aber, hab ich den Kern des Tipps richtig verstanden ? Man kann Ole-Varianten typisierten Variablen zuweisen und dann auf die Methoden zugreifen ? Geht das auch umgekehrt ? also z.b. sowas :
Delphi-Quellcode:
Und wie stehts dann mit dem Freigeben der Referenzen aus ?
var Excel: TExcelApplication ;
WB,X: OleVariant; begin Excel := TExcelApplication.Create ( nil ); X:= Excel as OleVariant; WB:= X.WorkBooks.Open ('Blubber'); ... end; Noch eine andere Frage. Wenn ich nur mit Varianten arbeite, dann brauch ich auch das Unit ExceXP oder ähnliches nicht aufnehmen, oder ? Dann geschieht das Hochfahren/ Ansprechen von excel rein durch ?
Delphi-Quellcode:
Gruß vom lernenden
MyExcel := CreateOleObject('Excel.Application');
Andreas |
Re: Fehler bei Excel.workbooks.Open (...)
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Fehler bei Excel.workbooks.Open (...)
Hoppla, da hab ich nicht richtig aufgepasst (das kommt davon, wenn man Sourcecode ohne IDE eintippt).
Delphi-Quellcode:
Wenn du die Unit ExcelXP oder Excel97 nicht aufnimmst, dann bist du ja komplett bei der späten Bindung,
uses ExcelXP;
... var Excel : TExcelApplication; WB : _WorkBook; x, wbs : OleVariant; ... wbs := Excel.Workbooks as IDispatch; x := wbs.Open(strDokument); die zwar sehr flexibel aber auch langsam und nicht typsicher ist. Für kleinere Aufgaben mit Excel geht das durchaus in Ordnung. Bei grösseren Aufgaben ist es besser, wenn man nicht alles über OleVariant (und IDispatch-Schnittstellen) abwickelt. |
Re: Fehler bei Excel.workbooks.Open (...)
Ok,jetzt habe ich einiges verstanden.
Jetzt komm ich weiter. Also euch allen nochmal vielen Dank! Gruß Andreas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 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