检查已安装的Excel版本并启动它

本文关键字:启动 版本 Excel 安装 检查 | 更新日期: 2023-09-27 18:09:31

我正在尝试在我的应用程序启动微软Excel与特定的参数(即。额外的xla &xll)。

现在它工作得很好,因为我所有的用户只安装了Office11(=2003)。

我的公司要切换到Windows 7 & &;Office 2010和我逻辑上不能启动任何excel,因为。exe不位于C:'Program Files:'Microsoft Office'Office11'EXCEL.EXE

我在注册表中运行了一个快速检查,看看我可以确定地检查当前安装的版本。还有很多文章解释如何获得当前安装的Office版本。

然而,我想知道是否有可能找到任何东西(例如一个好的注册表项)直接给我。exe路径,以便启动Excel。

使用我当前的机器(Win XP x86, Office11),我可以在HKEY_LOCAL_MACHINE'SOFTWARE'Microsoft'Office'11.0'Excel'InstallRoot中找到它

使用这个键,我基本上可以找到一个解决方法来获得实际的路径。问题:安装了Office 2010 (= Office 14)的Windows 7注册表中没有此键

你们知道如何从c#启动当前安装的excel吗?

供参考,下面是当前的代码部分,从x64/x86机器启动Office11:

    private void LaunchExcel(string arguments)
    {
        if (!Is64BitsOS())
        {
            Process process = new Process();
            process.StartInfo.FileName = "excel";
            process.StartInfo.Arguments = arguments;
            process.Start();
        }
        else
        {
            Process process = new Process();
            process.StartInfo.FileName = "c:/Program Files (x86)/Microsoft Office/Office11/excel.exe";
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.Arguments = arguments;
            process.Start();
        }
    }

有什么想法使这段代码更通用吗?

检查已安装的Excel版本并启动它

如果你启动Excel打开一个Excel文件,你可以启动一个Process与Excel文件作为FileName,并让Windows shell做所有的工作来找到相关的应用程序。显然,你需要一个异常处理程序。

这将使您独立于Office和Windows版本和注册表项。

否则,您可以采用不同的方法并找到相关的应用程序,如这里。

这些建议的要点是:目前,一旦安装了新的Office版本或使用了不同的Windows版本,您必须更改代码,而有一种方法可以避免这些依赖。

在64位Windows (XPx64,Vistax64,Win7x64)上运行的32位版本的Excel 2010将具有以下密钥。我想这就是你要找的钥匙HKLM'SOFTWARE'Wow6432Node'Microsoft'Office'14.0'Excel'InstallRoot

64位版本的Excel 2010运行在64位版本的Windows (XPx64,Vistax64,Win7x64)将有以下键

HKLM'SOFTWARE'Microsoft'Office'14.0'Excel'InstallRoot

从这里复制