.NET:如果我的.NET自动化Office,客户是否必须安装Office?

时间:2008-12-31 14:48:25

标签: c# com ms-office

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

当需要Excel时应用程序将失败

或者应用程序无法启动?


更新

让我问同样的问题,但是用更加明确的方式:

是否可以使用该应用程序
  •   

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

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

让我以另一种方式提出同样的问题:

应用程序是否无法初始化引用COM interop dll的?


让我以另一种方式提出同样的问题:

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


让我以另一种方式提出同样的问题:

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


让我以另一种方式提出同样的问题:

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

5 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:4)

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

答案 2 :(得分:3)

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

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

答案 3 :(得分: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/)。

答案 4 :(得分:1)

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