Zitat von
micha382:
Zitat:
Schonmal probiert, einfach eine Referenz auf eine
COM TypeLib zu setzen? Rolling Eyes
So einfach ist es in .NET dann doch nicht, guter Mann. Da bin ich ja selbst drauf gekommen, doch funktioniert hat es trotzdem nicht..
Dann machst Du was falsch. Bei mir geht es.
1, Hinzufügen der Referenz auf "Microsoft Excel x.0 Object Library"
2, Uses-Anweisung um
System.Reflection, Excel ergänzen
3, Beispielcode um Datei zu laden und neu zu speichern:
Delphi-Quellcode:
var
Exl: Excel.Application;
begin
Exl := Excel.ApplicationClass.Create;
Exl.Workbooks.Open('K:\Entwickler-Tests\AQTest\DataSource\Source-1\Basisdaten\Doku.xls',
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam);
Exl.ActiveWorkbook.SaveAs('C:\Temp\MyExcel.xls',
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, Excel.XlSaveAsAccessMode.xlExclusive, EmptyParam, EmptyParam,
EmptyParam, EmptyParam);
und da Borlande EmptyParam vergessen hat:
Delphi-Quellcode:
var
EmptyParam: TObject;
initialization
EmptyParam := System.Reflection.Missing.Value;
Zitat von
micha382:
Doch getreu dem Motto 'Démerdez-vous!' hab ich's nach einigen Wochen doch hinbekommen:
Du verwendest nicht Excel sondern die Fähigkeiten von
Access bzw. der JET-Engine Excel-Dateien zu öffnen.
Und da
Access von MS in Zukunft geringere Bedeutung hat (JET-Engine ist z.B. unter XP-Embedded nicht unbedingt installiert) ist diese Lösung auch keine 100% Lösung.
Zitat von
micha382:
Trotzdem vielen Dank für die freundliche Unterstützung. Habe gelernt, dass Foren (und nicht nur eures) doch nicht so toll sind wie sie immer denken.
Die Lösung war doch OK - evtl. etwas zu kurz gehalten für jemand der noch nicht so tief die .NET-Spezialitäten gegenüber
Win32 in Delphi kennt. Also war das Problem eher der Fragesteller.
Windows Vista - Eine neue Erfahrung in Fehlern.