Hallo p80286,
da hast du wohl recht, werde es dann einfach in die Grundeinstellung des jeweiligen Programms auslagern, das hat den Charme dass der Anwender das Format selbst wählen kann und somit u.U. auch für ältere Excel Versionen auf ggf. vorhandenen Zweit-Rechnern kompatibel sein kann.
Gruß
Sidi61
Da wirst du aber trotzdem nicht drum rum kommen, in deiner Speicher-Routine die Excel-Version zu prüfen. Denn wenn du ein neues Excel hast, der Benutzer aber im alten xls-Format speichern will, um die Datei auch auf seinem alten Rechner öffnen zu können brauchst du beim "Save As"-Befehl andere Parameter.
Delphi-Quellcode:
function ExcelVersion:integer;
begin
//ExcelApp.Version liefert sowas wie 14.0
Result:=Trunc(StrToFloat(ExcelApp.Version))
end;
//irgendwo in der Speichern-Routine:
//ab Version 12.0 gibts meine ich xlsx
If ExcelVersion>=12 then //Excel-Version ist neu
begin
If GewünschteDateiEndung='xlsx' then
ExcelApp.SaveAs(GewünschterDateiname)
Else //Endung='xls' gewünscht
//56=Altes Excel-Format benutzen in neueren Excels
ExcelApp.SaveAs(GewünschterDateiname,56)
end
Else //Excel-Version ist alt
begin
If GewünschteDateiEndung='xlsx' then
showmessage('Altes Excel kann neues Format nicht speichern')
Else //Endung='xls' gewünscht
ExcelApp.SaveAs(GewünschterDateiname)
end;
Die Magic-Numbers sollte man natürlich durch ordentlich benamste Konstanten ersetzen.