0
我目前使用下面的代碼來檢查,看看是否在用戶的計算機上存在的Excel自動化庫:檢測的Excel版本在Delphi
CoInitialize(nil);
ExcelExists := true;
try
TestExcel := CreateOleObject('Excel.Application');
except
ExcelExists := false;
end;
if ExcelExists then begin
TestExcel.Workbooks.Close;
TestExcel.Quit;
TestExcel := Unassigned;
end;
這一直工作正常,直到一個用戶只有Excel 2003中。上面的代碼表示他有Excel,但是我的Excel自動化不適用於他,並且我懷疑它不適用於Excel 2003之前的版本。
如何檢查安裝的Excel版本是否爲2007或更高版本?
基於大衛的回答,我最後決定將這個如果ExcelExists語句之後,它似乎做的工作:
S := TestExcel.Application.Version;
if (copy(S, 3, 1) <> '.') or (S < '12') then
ExcelExists := false;
12版是Office 2007的
使用版本屬性是好的,是的,版本12是Excel 2007.與v12中的幾個自動化相關的東西發生了變化,主要是國際化,語言等。但我想知道爲什麼不Excel 2003的工作。自1995年以來,我們使用Excel進行自動化,所有基本的東西(如關閉工作簿和退出,就像您的eexample一樣)的工作原理是一樣的。 –