HRESULT 异常: 0x800A03EC

3

需要帮助:

我正在使用VS2010开发一个与Excel交互的C#.Net应用程序。该应用程序在我的本地机器上可以正确运行。但是将其上传到远程Windows 2003服务器时,应用程序就会出现问题。

最初,我收到了以下消息:

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

在谷歌搜索这个问题后(建议是权限问题),我尝试了以下方法:

现在,在相同的操作上,我得到了以下消息:

  • HRESULT异常:0x800A03EC

谷歌搜索似乎表明这是版本匹配错误。但是,本地机器和远程服务器都使用Excel 2007。

任何建议将不胜感激。提前致谢。

-Daniel

4个回答

1
如果您正在尝试将DataGridView发送到Excel电子表格,请记住Excel单元格从单元格(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

0
建议:
  1. 从一个线程控制Excel并使用“en_US”文化。如果使用非英语文化,则有许多属性会触发0x800A03EC。如果您的Windows 2003意外地使用了另一种系统语言,那么这可能是问题所在。无需重新安装Windows!只需在应用程序中为线程指定文化即可。
  2. 检查使用范围设置的字符串长度。有一个911个字符的限制。对于具有更大字符串的单元格,可以分别设置它们。虽然这很繁琐,但我找不到其他解决方法。

0

我通过全面禁用所有插件并重新启动应用程序来解决了这个问题。然后,我重新启用有用的插件,观察Excel的行为。你的情况可能会有所不同。


0
请删除位于“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”文件夹中的临时ASP.Net文件,然后检查是否正常工作。
如果检查后仍无法正常工作,请重新启动系统并检查...这可能是由于文件损坏而导致的。因此,请进行磁盘检查。
谢谢。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接