【问题标题】:Check installed Excel version and launch it检查已安装的 Excel 版本并启动它
【发布时间】:2011-09-23 07:47:58
【问题描述】:

我正在我的应用程序中尝试使用特定参数(即附加 xla 和 xll)启动 Microsoft Excel。

目前它工作正常,因为我所有的用户都只安装了 Office11 (=2003)。

我的公司将切换到 Windows 7 和 Office 2010,由于 .exe 不在 C:\Program Files:\Microsoft Office\Office11\EXCEL.EXE 中,因此我逻辑上无法启动任何 Excel 文件

我快速检查了注册表,发现我肯定可以检查当前安装的版本。还有很多文章解释了如何获取当前安装的 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();
        }
    }

有什么想法可以让这段代码更通用?

【问题讨论】:

    标签: c# excel registry ms-office


    【解决方案1】:

    如果您启动 Excel 以打开 Excel 文件,您可以启动一个 Process 并将 Excel 文件设置为 FileName 并让 Windows shell 完成所有工作以查找关联的应用程序。显然,您需要一个异常处理程序。

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

    否则您可以采取不同的方法并找到相关的应用程序,例如here

    这些建议的重点是:目前,您必须在安装新的 Office 版本或使用不同的 Windows 版本后立即更改代码,但有办法避免这些依赖关系。

    【讨论】:

      【解决方案2】:

      在 64 位版本的 Windows(XPx64、Vistax64、Win7x64)上运行的 32 位版本的 Excel 2010 将具有以下键。 我认为这是您正在寻找的关键 HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Excel\InstallRoot

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

      HKLM\SOFTWARE\Microsoft\Office\14.0\Excel\InstallRoot

      复制自here

      【讨论】:

      • 有没有办法获取版本号(在您的示例中为14.0)?
      猜你喜欢
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 2016-09-18
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 2018-07-05
      相关资源
      最近更新 更多