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一样)的工作原理是一样的。 –