来自HRESULT的异常:0x800A03EC

时间:2010-06-11 11:50:41

标签: c# .net excel

感谢任何帮助:

我正在VS2010中开发一个与Excel交互的C#.Net应用程序。该应用程序在我的本地计算机上正常运行然而,上传到远程Windows 2003服务器会破坏应用程序。

最初,我收到了以下消息

  • 由于以下错误,检索CLSID为{00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败:80070005

在谷歌搜索问题(提示权限问题)之后我尝试了这个:

现在我在同一个操作上收到此消息:

  • HRESULT的异常:0x800A03EC

Google搜索似乎暗示这是版本匹配错误。但是,本地计算机和远程服务器都使用Excel 2007。

非常欢迎任何建议。提前谢谢。

-Daniel

4 个答案:

答案 0 :(得分:1)

如果您尝试将datagridview发送到Excel电子表格,请记住Excel单元格从Cell(1,1)开始,但datagridview.rows和datagridview.columns的索引为0.因此,如果您尝试发送内容datagridviewcell(0,0)到Excel单元格(0,0),你将从HRESULT得到异常:0x800A03EC

我疯狂地搜索了大约15分钟,然后将我的手掌撞到了我的额头上。

Excel.Cells(0,0)=Datagridviewcellvalue // throws HRESULT: 0x800A03EC error 
Excel.Cells(1,1) = Datagridviewcellvalue //no error

答案 1 :(得分:0)

建议:

  1. 从一个线程控制Excel并使用“en_US”文化。如果使用非英语文化,有许多属性会触发0x800A03EC。是偶然的,您的Windows 2003使用其他系统语言,如果是,那么这可能是问题。无需重新安装Windows!只需在您的应用中指定线索的文化。
  2. 检查使用范围设置的字符串的长度。 911个字符有限制。您可以为具有较大字符串的单元格单独设置它们。这很乏味但我找不到任何其他方法来解决这个问题。

答案 2 :(得分:0)

我能够通过批量禁用所有加载项并重新启动应用程序来解决此问题。然后我重新启用有用的,看Excel行为。 YMMV

答案 3 :(得分:0)

从“C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files”这个文件夹中删除临时ASP.Net文件,请在此之后检查。

检查后它也不起作用然后重启系统并检查......由于文件损坏,有可能发生这种情况。光盘检查也是如此。

谢谢