【发布时间】: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