![]() |
Herausfinden, welche Excelversion genutzt werden kann
Hallo ihr,
ich benutze zum Einlesen von Daten die Möglichkeit Exceltabellen einzulesen. Nun haben wir es bisher mit MSO 2003 und 2007 getestet. Und wie kann ich jetzt abfragen, ob Excel installiert ist (also 2003 oder 2007)? Bisher habe ich folgenden Code gefunden:
Delphi-Quellcode:
Nun habe ich leider hier weder 2003 noch 2007 und diese Funktion liefert auch False. Aber wie müsste ich das erweitern? Ich tippe mal auf eine OR-Verknüpfung und einer 12 im zweiten Eintrag, statt der 11.
function TDatenbank.ExcelInstalliert: Boolean;
var tmp : TGUID; begin // Test auf MSO 2k3, vielleicht geht es nicht für MSO 2k7? Result := Succeeded(CLSIDFromProgID(PWideChar('Excel.Application.11'), tmp)); end; Achso möglichst so, dass ich auch überprüfen kann, um welche Version es sich handelt, sofern ![]() MfG xZise |
Re: Herausfinden, welche Excelversion genutzt werden kann
Excel 2007 müsste beide COM-Klassen anbieten
|
Re: Herausfinden, welche Excelversion genutzt werden kann
Das heißt, mit MSO 2k7 würde das auch True zurückgeben? Kann ich dann herausfinden, ob ich OpenXML öffnen kann?
MfG xZise |
Re: Herausfinden, welche Excelversion genutzt werden kann
Zitat:
Zitat:
|
Re: Herausfinden, welche Excelversion genutzt werden kann
Naja, bisher könnten wir die Daten erfolgreich auch mit MSO 2007 einlesen. Aber es war halt eine normale Tabelle. Und nun hatte ein Lehrer gefragt ob er auch das neue Format öffnet, und heute ist mir eingefallen, das er das sozusagen automatisch unterstützt. Ich müsste halt nur herausfinden, ob ich MSO 2k7 oder MSO 2k3 benutzen kann (zur Laufzeit) und dann entsprechend im Öffnen-Dialog auch xlsx anbieten.
Und genau den Schritt zum Herausfinden, ob auf dem Rechner auf MSO 2k7 zurückgegriffen werden kann fehlt mir. MfG xZise |
Re: Herausfinden, welche Excelversion genutzt werden kann
O2k7 bieten alle Klassen an O2k3, die von O2k7 nicht. Zudem gibt es ja auch ein Converter-Pack für ältere Office-Pakete, das diesen erlaubt OpenXML zu Laden.
|
Re: Herausfinden, welche Excelversion genutzt werden kann
Ich verstehe gerade nicht was du meinst :D
Ich dachte daran:
Delphi-Quellcode:
Weil konvertieren wollte ich die Datei nicht :D
type
TExcelVersion = (ev2003, ev2007, evNone); function ExcelVersion : TExcelVersion; begin Result := .... (hier bitte den Code :D ) end; procedure DoSmth; begin case ExcelVersion do ev2003 : OD.Filter := 'xls|*.xls'; ev2007 : OD.Filter := 'xls(x)|*.xls;*.xlsx'; else begin ShowMessage('Nix Excel'); Exit; end; end; if OD.Execute do ... end; MfG xZise |
Re: Herausfinden, welche Excelversion genutzt werden kann
O2k3 implemnetiert Excel.Application.12 nicht.
Konvertiern meint in diesem Fall Laden |
Re: Herausfinden, welche Excelversion genutzt werden kann
Zitat:
Zitat:
MfG xZise |
Re: Herausfinden, welche Excelversion genutzt werden kann
Der Converterpack ist von MS und erweitert ältere Versionen um Import/Export-Filter für die OpenXML-Dateiversionen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:33 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 by Thomas Breitkreuz