创建 Excel 应用程序时出现 COM 异常 80040154
Posted
技术标签:
【中文标题】创建 Excel 应用程序时出现 COM 异常 80040154【英文标题】:COM Exception 80040154 When creating an Excel Application 【发布时间】:2012-12-01 15:40:02 【问题描述】:我正在尝试在没有也不会安装 Office 的服务器上运行我的应用程序。
using EXCEL = Microsoft.Office.Interop.Excel;
...
EXCEL.Application app = new EXCEL.Application();//Exception thrown here
代码在我自己的系统上运行良好,但在服务器上却出现以下异常:
Unhandled Exception: System.Runtime.InteropServices.COMException:
Retrieving the COM class factory for component with CLSID ... failed
due to the following error: 80040154 Class not registered
(Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
两个系统都是 32 位的,我复制了应用程序 exe 旁边的 excel Interop dll。我还安装了O2010PIA。
有什么线索吗?
【问题讨论】:
【参考方案1】:Office 互操作程序集是运行时可调用的包装器 (RCW),允许您通过其公开的 COM API 与安装在系统上的 Office 副本进行互操作。
错误消息表明没有安装 Excel,这正是我所期望的。不能在没有 Office 的计算机上使用 Interop 程序集。
【讨论】:
【参考方案2】:我正在尝试在服务器上运行我的应用程序,但该服务器不会也将 没有安装 Office。
正如 Joe 所说,您需要安装 Excel 才能使 Interop 工作。如果您对此不以为然,请考虑third-party alternatives。一般来说,Microsoft does not recommend installing Office on your server and using it with Interop - 话虽如此,它会起作用(至少在大多数情况下)。
【讨论】:
第二个链接(微软建议不要安装 Office)坏了。以上是关于创建 Excel 应用程序时出现 COM 异常 80040154的主要内容,如果未能解决你的问题,请参考以下文章
使用 C# 和 XAML 为 Windows 8.1 创建 facebook 应用程序时出现异常
在 iOS 8 Today Extension 中获取 parse.com 用户数据时出现异常
使用 Apache Poi 生成批量 excel 文件时出现套接字异常