【发布时间】:2013-07-17 21:11:43
【问题描述】:
DCOM Config 中没有“Microsoft Excel 应用程序”的条目(在 32 位和 64 位中均已尝试)。我怎样才能让它出现在那里?我已经安装了 Microsoft Office。
【问题讨论】:
标签: c# office-interop com-interop excel-interop dcom
DCOM Config 中没有“Microsoft Excel 应用程序”的条目(在 32 位和 64 位中均已尝试)。我怎样才能让它出现在那里?我已经安装了 Microsoft Office。
【问题讨论】:
标签: c# office-interop com-interop excel-interop dcom
如果您在 32 位或 64 位 DCOMCNFG 中都找不到“Microsoft Excel 应用程序”,您可以进入 HKEY_CLASSES_ROOT/AppID 注册表并找到您的 Excel 版本的 CLSID(Excel 2013 的 AppID 为 {00020812 -0000-0000-C000-000000000046})
检查该键的(默认)REG_SZ 是否已为其设置了值。
如果没有,请将默认值更改为“Microsoft Excel 应用程序”,重新启动 DCOMCNFG 后,您应该会在 DCOM 树中看到“Microsoft Excel 应用程序”。
【讨论】:
80070005 Access is denied.。我现在有错误80080005 Server execution failed,但那是另一回事了。
假设您在安装后重新启动,此页面说明如何尝试重新注册 COM 服务器:TechNet Entry on Excel DCOM Config。
从命令提示符导航到 Excel.exe 所在的位置,然后 重新注册应用程序。在 64 位机器上,它位于(通过 默认)在 C:\Program Files (x86)\Microsoft Office\Office14 下 Office 2010 和 C:\Program Files (x86)\Microsoft Office\Office12 for 办公室 2007。
- 打开命令提示符 - 开始、运行,键入 CMD.EXE,但暂时不要按 ENTER
- 在“所有程序”列表中找到 CMD.EXE。右键单击它,然后左键单击“以管理员身份运行”
这应该会打开一个命令提示符。现在,输入以下内容:
CD\然后按 ENTER。然后输入:
CD C:\Program Files (x86)\Microsoft Office\Office14然后按 ENTER。然后输入:
EXCEL.EXE –REGSERVER然后按回车
* 注意,对于 Microsoft Word,CMD 为:
WINWORD.EXE –REGSERVER
【讨论】:
另一个技巧是先注销组件。
第一次运行:
EXCEL.EXE -UNREGSERVER
然后:
EXCEL.EXE -REGSERVER
【讨论】:
以 32 位模式启动 DCOMCNFG:
DCOMCNFG -32
然后位于:
组件服务\我的电脑\DCOM 配置\Microsoft Excel 应用程序
【讨论】:
当您在 Windows Server 2016 计算机上使用 Microsoft Excel 2016 时,您需要运行“C:\Program Files (x86)\Microsoft Office \root\Office16\Excel.exe -REGSERVER" 具有管理员权限。此命令创建 DCOM 条目。
我建议您使用服务用户登录 Windows 并运行 Excel 一次以设置用户配置文件并将 Excel 注册到该用户。此外,您可能需要设置一些信任中心设置以允许使用旧的 XLS 4.0 格式等。因为这些设置绑定到用户而不是本地机器。
之后,必须(看起来很奇怪)在“C:\Windows\System32\config\systemprofile”和“C:\Windows\SysWOW64\config\systemprofile”下创建两个名为“Desktop”的新文件夹”。创建后,授予执行用户对根文件夹“..\systemprofile”的读取/创建/更改权限,以允许运行用户访问目录树。 创建两个桌面文件夹是我的 InterOp 工作的关键!
【讨论】: