私のプログラムでは、Excelファイルをロードする必要があります。このファイルの拡張子は[.xls][。xlsx][。xlsm][。xlsb]です。
Excel07 +はこれらすべてを本質的に処理できますが、Excel2003で[.xlsx][。xlsm][。xlsb]を使用するには、http://www.microsoft.com/en-us/download/detailsをインストールする必要があります。 aspx?id = 3
これが、インストールされているエクセルバージョンを判別するための私のコードです。問題:互換性パックのインストールを判別する方法がわかりません(+++でマークされています)
if (ExtractFileExt(sFileNameVorlage) = '.xlsx') or
(ExtractFileExt(sFileNameVorlage) = '.xlsm') or
(ExtractFileExt(sFileNameVorlage) = '.xlsb') then
begin
//determine version of excel (lower or equal 2003 )
if StrToInt(Copy(oVersionscheck.version,1,2)) <= 11 then
begin
// equal 2003
if StrToInt(Copy(oVersionscheck.version,1,2)) = 11 then
if not +++compatibility pack installed?+++ then
begin
ShowMessage('Warning: Excel can´t open this file.');
oVersionscheck.Quit;
oVersionscheck := unassigned;
Exit;
end;
end;
oVersionscheck.Quit;
end;
おそらく誰かが解決策を知っています。