我开发了一个C#桌面应用程序。我的软件在Excel中执行了一些报告生成。到目前为止,它在我的客户端系统中运行良好。最近,他升级到了Microsoft Office 2013.
我注意到每当他打开Excel时,它会提示激活向导,不允许报告生成并抛出COM异常:
“HRESULT异常:0x800AC472”
任何想法,如果可能的话,在C#程序中处理它并继续报告生成。
P.S:请为此问题仅建议技术解决方案。我已经建议客户购买该软件的许可证(如果他没有),以便它可以工作。
由于
答案 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。