Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中为Excel自动化创建COM对象时出现异常#_C#_Excel_Com_Automation - Fatal编程技术网

C# 在C中为Excel自动化创建COM对象时出现异常#

C# 在C中为Excel自动化创建COM对象时出现异常#,c#,excel,com,automation,C#,Excel,Com,Automation,我在创建COM对象以使用Excel automation时遇到此错误。有人知道我为什么会犯这个错误吗 System.Runtime.InteropServices.COMException(错误代码=-2146959355) 消息:由于以下错误,检索CLSID为{00024500-0000-0000-C000-0000000000 46}的组件的COM类工厂失败:80080005 调用堆栈如下所示: System.Runtime.Remoting.RemotingServices.Allocat

我在创建COM对象以使用Excel automation时遇到此错误。有人知道我为什么会犯这个错误吗

System.Runtime.InteropServices.COMException(错误代码=-2146959355) 消息:由于以下错误,检索CLSID为{00024500-0000-0000-C000-0000000000 46}的组件的COM类工厂失败:80080005

调用堆栈如下所示:

System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType) 在System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(类型objectType)上 在System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(类型serverType) 在System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(类型serverType,对象[]props,布尔bNewbj) 在System.RuntimeTypeHandle.CreateInstance(RuntimeType类型、Boolean publicOnly、Boolean noCheck、Boolean&canBeCached、RuntimeMethodHandle&ctor、Boolean&bNeedSecurityCheck) 位于System.RuntimeType.CreateInstanceSlow(布尔publicOnly,布尔fillCache) 位于System.RuntimeType.CreateInstanceImpl(布尔publicOnly、布尔skipVisibilityChecks、布尔fillCache) 位于System.Activator.CreateInstance(类型,布尔非公共) 在Geotab.ComObject..ctor处(类型)

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

您需要对Excel库的引用。在项目上添加引用并转到COM选项卡,然后使用您拥有的版本的Microsoft Excel。

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

否。他正在使用反射,那么他为什么需要添加对PIA的引用?您也可以尝试运行Excel.exe/safe来加载Excel,同时禁用加载项等功能,并查看加载是否正常。然后,如果可行,请尝试取消选中(禁用)所选加载项(COM和Excel)以及禁用任何VBA宏。