C# 将DataGridView导出到excel时遇到问题,接收Com错误

C# 将DataGridView导出到excel时遇到问题,接收Com错误,c#,excel,winforms,datagridview,com,C#,Excel,Winforms,Datagridview,Com,2013年,我曾在C#.net中使用过代码。将DGV导出到excel的。然而,它已经停止工作,截至今天上午,它已经大约一个月以来,我已经打开了代码。现在我得到一个错误: 其他信息:无法强制转换类型为的COM对象 Microsoft.Office.Interop.Excel.ApplicationClass“到接口类型” “Microsoft.Office.Interop.Excel.\u应用程序”。此操作失败 因为接口的COM组件上的QueryInterface调用 由于以下原因,IID“{00

2013年,我曾在C#.net中使用过代码。将DGV导出到excel的。然而,它已经停止工作,截至今天上午,它已经大约一个月以来,我已经打开了代码。现在我得到一个错误:

其他信息:无法强制转换类型为的COM对象 Microsoft.Office.Interop.Excel.ApplicationClass“到接口类型” “Microsoft.Office.Interop.Excel.\u应用程序”。此操作失败 因为接口的COM组件上的QueryInterface调用 由于以下原因,IID“{000208D5-0000-0000-C000-0000000000 46}”失败: 以下错误:库未注册。(HRESULT的例外情况: 0x8002801D类型(未注册)


我已经找到了一些关于删除Regedit键的答案?发生了什么,我需要删除哪个键?

在我的例子中,这是一个明确定义库的非32位版本的使用的问题。为了在visual studio中执行此操作,我必须勾选并取消勾选项目配置的“构建”部分中的“首选32位”框,该框在.csproj文件中添加了
false

另外,许多帖子都在谈论降级office,我们没有降级,而是转到office 365尝试删除三个office引用(Excel、Office、VBE)从解决方案资源管理器中的“引用”节点。然后再次添加Excel Com引用。然后清理并重新生成项目。我仅有的引用是microsoft.Office.interop.Excel。似乎包含了基本思想,而不管具体版本如何有问题。我看过那篇文章,但我在typelib中没有000208D5-0000-0000-C000-0000000000 46值。或者任何具有\1.6或1.7的typelib…它们都只是一个带有deafult类型数据的guid(未设置值)我假设这是在构建为
任何CPU
并使用64位互操作dll时。是的。平台目标
任何CPU
。此外,在取消选中
首选32位
选项之前,应选择
所有配置
,否则可能会发生意外行为。