【问题标题】:How to resolve issue with Office Interop Assemblies on VB6 exe installation?如何解决 VB6 exe 安装中 Office 互操作程序集的问题?
【发布时间】:2016-06-06 17:48:16
【问题描述】:

我使用 VB6 开发了一个交易应用程序。其中,我使用了 Excel 应用程序对象,如下所示(Excel.Application)。

Set xl = New Excel.Application
Set xlwbook = xl.Workbooks.Add
Dim xlsheet As Worksheet
Set xlsheet = xlwbook.Sheets.Item(1)

而且,我已经使用 Advanced Installer 为该 VB6 的 exe 创建了安装程序,其先决条件为 Office 2010 Primary Interop Assemblies 指向 - o2010pia.msi(启用该选项访问 Excel.Application)。

即使安装了 Office 2010 主互操作程序集,我也无法运行已安装的应用程序。它会抛出 Object Required 错误。

注意:我已经对此进行了谷歌搜索,其中许多人建议了他们针对 C# 和/或 VB .Net 环境的解决方案。我想要它用于 VB6 环境。

请帮我解决这个问题?提前致谢。

【问题讨论】:

  • 为什么需要互操作程序集?他们不是要为 Office 产品提供 .NET 接口吗? VB6 将使用普通 COM,因此不需要任何东西。哪一行代码出错了?
  • Set xl = New Excel.Application - 我收到错误消息。
  • 那么,程序如何在没有互操作程序集的情况下调用 excel 应用程序对象。因为,客户端计算机没有安装 MS Office。
  • 好的,如果您的 PC 上没有 Office,那么它将永远无法工作。互操作程序集只是为您提供了调用 Office 的网关。如果您的程序需要在未安装 Office 的情况下创建 Office 文档,那么您需要查看另一种解决方案。 .NET 应用程序可以使用 OpenXML,但您可能需要查看一下,也许只是创建 CSV 文件?
  • 因此,Office 互操作程序集创建了与 Office 和开发工具的桥梁。如果我需要在 VB6 中使用 excel.. 终端机器应该安装 MS Office 吗?

标签: excel vb6 installation excel-interop


【解决方案1】:

我将总结评论线程作为答案。 OP 编写了一个使用 COM 创建 Excel 电子表格的 VB6 应用程序。他将 Office 互操作程序集包括在他的安装中,但他创建电子表格的代码不起作用。原因是最终用户计算机上未安装 Office。

Office 互操作程序集仅为 .NET 应用程序提供一个接口,通过该接口它们可以与已安装的 MS Office 应用程序的 COM 接口通信,它们不提供 Office 功能。在 OP 的情况下,他不需要它们,因为 VB6 可以直接与 MS Office 的 COM 接口对话。

OP 要么需要在他的最终用户计算机上安装 Office,要么以不同的方式生成他的电子表格,可能是 CSV。

【讨论】:

    猜你喜欢
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 2011-04-15
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多