在C#中为Excel自动化创buildCOM对象时发生COMException

当我创build一个COM对象以便使用Excel自动化时,出现此错误。 任何人都知道为什么我得到这个错误?

System.Runtime.InteropServices.COMException(errorCode = -2146959355)消息:检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80080005。

调用堆栈如下:

System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(Type objectType)System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(Type serverType)System.Runtime.Remoting。在System.RuntimeType.CreateInstanceSlow(Boolean)处的System.RuntimeTypeHandle.CreateInstance(RuntimeTypetypes,Boolean publicOnly,Boolean noCheck,Boolean&canBeCached,RuntimeMethodHandle&ctor,Boolean&bNeedSecurityCheck)上的Activation.ActivationServices.IsCurrentContextOK(typesserverType,Object [] props,Boolean bNewObj) (System.Activator.CreateInstance(Type type,Boolean nonPublic))在System.RuntimeType.CreateInstanceImpl(Boolean publicOnly,Boolean,SkipVisibilityChecks,Boolean fillCache)方法publicOnly,Boolean fillCache)

这是我的代码:Type excelAppType = Type.GetTypeFromProgID(“Excel.Application”); comExcelObject = new ComObject(excelAppType);

错误代码(0x80080005)是CO_E_SERVER_EXEC_FAILURE,“服务器执行失败”。 换句话说,当COM尝试启动Excel.exe时出了点问题。 相当基本的问题有太多可能的原因。 检查Windows事件日志以获得更好的诊断。 通常的下一步是重新安装Office。

您需要对Excel库的引用。 在您的项目中添加引用,然后转到“COM”选项卡,然后select“Microsoft Excel”。