在Delphi中检测Excel的版本

我正在使用下面的代码来检查用户的计算机上是否存在Excel自动化库:

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或更高版本?


根据David的回答,我最终把这个放在ifExcelExists声明之后,而且似乎是做了这个工作:

 S := TestExcel.Application.Version; if (copy(S, 3, 1) <> '.') or (S < '12') then ExcelExists := false; 

版本12是Office 2007。

阅读Excel Application对象的Version属性。 将其与您的代码支持的最小值进行比较。