在 Delphi 中检测 Excel 的版本
Detect Version of Excel in Delphi
我目前正在使用以下代码检查用户计算机上是否存在 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 的回答,我最终将它放在 if ExcelExists 语句之后,它似乎可以完成工作:
S := TestExcel.Application.Version;
if (copy(S, 3, 1) <> '.') or (S < '12') then
ExcelExists := false;
版本 12 是 Office 2007。
读取ExcelApplication
对象的Version
属性。将此值与您的代码支持的最小值进行比较。
我目前正在使用以下代码检查用户计算机上是否存在 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 的回答,我最终将它放在 if ExcelExists 语句之后,它似乎可以完成工作:
S := TestExcel.Application.Version;
if (copy(S, 3, 1) <> '.') or (S < '12') then
ExcelExists := false;
版本 12 是 Office 2007。
读取ExcelApplication
对象的Version
属性。将此值与您的代码支持的最小值进行比较。