2

如果我创建一个程序,它在一个小的偏僻区域,使用 Excel 自动化:

需要 Excel 时应用程序会失败吗

还是应用程序无法启动?


更新

让我问同样的问题,但以更冗长的方式:

该应用程序是否可以使用

  • 99.9% 的用户从不使用需要 Excel 的功能

  • 0% 的用户,因为没有安装 Excel。

让我用另一种方式问同样的问题:

引用 COM 互操作 dll 的应用程序是否会无法初始化?


让我用另一种方式问同样的问题:

不使用 Excel 但引用 COM 互操作 DLL 的应用程序会无法启动吗?


让我用另一种方式问同样的问题:

如果未安装 Excel,如果该应用程序依赖于 Office Primary Interop dll,那么不使用 Excel 的应用程序是否可以使用?


让我用另一种方式问同样的问题:

如果我的应用程序不使用 Excel,用户是否必须安装 Excel?

4

5 回答 5

4

代码将正确执行,直到它尝试调用自动化库,那时它将生成异常。

于 2008-12-31T15:47:16.970 回答
4

我有一个使用 Excel 自动化的应用程序,我可以肯定地说它会在运行时失败,而不是在加载时失败。事实上,我们会检查它是否已安装,如果找到它,则仅显示“在 Excel 中显示数据”按钮(但 PIA 已部署到所有安装中)。

于 2008-12-31T16:06:29.083 回答
3

我认为它会在运行时失败,因为互操作程序集应该能够在没有客户端系统上可用的 COM 组件的情况下加载。

更新:运行时应该意味着您需要它!

于 2008-12-31T14:50:41.997 回答
3

如果您使 Office 自动化...您必须拥有 Office!

话虽如此,但如果您将问题扭曲为:我可以在客户端没有 Excel 的情况下创建 Excel 电子表格吗?

有许多第三方控件可以做到这一点;您可以直接写入 MS SpreadML XML 规范(http://msdn.microsoft.com/en-us/library/aa140066(office.10).aspx;或使用第三方库(如http:// www.carlosag.net/Tools/ExcelXmlWriter/ )。

于 2008-12-31T14:50:57.783 回答
1

在 Win32 中使用 COM,它会在需要时失败。

于 2008-12-31T14:52:27.563 回答