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

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

或者应用程序将无法启动?


更新

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

该应用程序是否可以使用

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

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

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

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


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

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


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

如果未安装 Excel,并且不使用 Excel 的应用程序依赖于 Office 主互操作 dll,那么该应用程序是否可以使用?


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

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

有帮助吗?

解决方案

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

其他提示

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

如果您将 Office 自动化...你得有Office!

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

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

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

更新:运行时应该意味着当你需要的时候!

在Win32中使用COM,需要的时候就会失败。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top