如何判断excel的版本

szto2003 2012-12-18 12:09:38
在使用控件dbgrideh导出excel后,excel2010提示文件已损坏,想通过程序判断excel的版本,如果是2010版就通过ole导出,(通过注册表或者文件目录等其他方法都可以),望高手指点!!
...全文
303 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
szto2003 2012-12-19
  • 打赏
  • 举报
回复
自己再顶一下!!
szto2003 2012-12-18
  • 打赏
  • 举报
回复
能用HKEY_CURRENT_USER下面的判断吗,因为好多公司的电脑没有HKEY_LOCAL_MACHINE的访问权限!!
xiaojun5556 2012-12-18
  • 打赏
  • 举报
回复
function hasExcel2010(): Boolean; var MyReg: TRegistry; begin // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\SOFTWARE\Microsoft\Office\14.0 Result := False; MyReg := TRegistry.Create; try MyReg.RootKey := HKEY_LOCAL_MACHINE; if MyReg.OpenKey('\SOFTWARE\', FALSE) then begin if MyReg.OpenKey('\SOFTWARE\Microsoft\Office\Software\Microsoft\Office\14.0', FALSE) then begin Result := True; end else if MyReg.OpenKey('\SOFTWARE\Microsoft\Office\14.0\Excel\InstallRoot', FALSE) then begin Result := MyReg.ValueExists('Path'); end else if MyReg.OpenKey('\SOFTWARE\Microsoft\Office\14.0', FALSE) then begin Result := True; end; MyReg.CloseKey; end; finally MyReg.Free; end; end; function hasExcel2007(): Boolean; var MyReg: TRegistry; begin // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Excel\InstallRoot\Path: C:\Program Files\... Result := False; MyReg := TRegistry.Create; try MyReg.RootKey := HKEY_LOCAL_MACHINE; if MyReg.OpenKey('\SOFTWARE\', FALSE) then begin if MyReg.OpenKey('\SOFTWARE\Microsoft\Office\12.0\Excel\InstallRoot', FALSE) then begin Result := MyReg.ValueExists('Path'); end; MyReg.CloseKey; end; finally MyReg.Free; end; end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧