打开Excel文件时出现C#COM异常

时间:2013-07-28 14:29:02

标签: c# excel

我开发了一个C#桌面应用程序。我的软件在Excel中执行了一些报告生成。到目前为止,它在我的客户端系统中运行良好。最近,他升级到了Microsoft Office 2013.

我注意到每当他打开Excel时,它会提示激活向导,不允许报告生成并抛出COM异常:

“HRESULT异常:0x800AC472”

任何想法,如果可能的话,在C#程序中处理它并继续报告生成。

P.S:请为此问题仅建议技术解决方案。我已经建议客户购买该软件的许可证(如果他没有),以便它可以工作。

由于

3 个答案:

答案 0 :(得分:0)

如果您没有合同,可以用手机发短信吗?不,和你的问题一样。

如果他不想为开源替代生成报告,则需要有效许可才能使用Excel。

答案 1 :(得分:0)

这通常是超时例外 Excel Interop不会返回直到excel满载...
因为有对话框阻止Excel启动,所以会抛出超时异常。

如果是您的计算机,只需激活您的Excel副本。

如果它在您的客户端上,您应该要求有效的Excel安装(意味着激活)

另外,有一些免费解决方案,例如:
 1.生成CSV文件(尽管不能设置样式)
 2.通过ADO生成Xls(同样,没有样式)
 3.使用Open Office(但也要求客户也拥有它)
 4.使用3ed Party Libraries:https://code.google.com/p/excellibrary/     或来自CompnentOne等的商业包......

干杯

答案 2 :(得分:0)

我相信您可以使用Office的主互操作程序集,在没有实际应用程序或许可证的情况下自动执行Office,但我不是任何类型的律师或许可专家,只是互联网上的某些人,谁可能是完全错误的 !!

一旦您的程序自动生成报告,您的客户就可以使用Excel viewer查看报告。

您可以从here下载PIA。