1

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

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

“HRESULT 异常:0x800AC472”

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

PS:请仅针对该问题提出技术解决方案。我已经建议客户购买许可证(如果他没有),以便软件运行。

谢谢

4

3 回答 3

0

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

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

您可以从这里下载 PIA 。

于 2013-07-28T15:01:36.543 回答
0

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

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

于 2013-07-28T14:45:31.600 回答
0

通常是超时异常。
Excel Interop 直到 excel 完全加载后才会返回...
因为有对话框阻止 Excel 启动,所以会引发 Timeout 异常。

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

如果它在您的客户端上,您应该需要有效的 Excel 安装(表示已激活)

或者,有一些免费的解决方案,例如:
1. 生成 CSV 文件(虽然没有样式是可能的)
2. 通过 ADO 生成 Xls(同样,没有样式)
3. 使用 Open Office (但需要客户拥有它
4. 使用 3ed 方库,例如:https ://code.google.com/p/excellibrary/ 或 CompnentOne 等的商业包...

干杯

于 2013-07-28T14:53:04.410 回答