【问题标题】:In delphi, how do you embed Excel in a form and show excel components on the component pallette?在delphi中,如何在表单中嵌入Excel,并在组件托盘上显示excel组件?
【发布时间】:2015-06-01 23:33:15
【问题描述】:

几年前,我记得在 delphi 5 的组件面板中安装了 excel 和 office 组件。它是通过 activeX 或 COM,或 typelib,有一些方法可以安装组件。我认为您可以将组件拖放到表单上,然后将电子表格嵌入到您的应用程序(或 microsoft word 等)中。

我可以在互联网上找到的唯一信息是关于使用 OLEcontainers... 这是 delphi 5 系统选项卡中的一个组件。但是当我使用组件嵌入 excel 时,我不记得它是一个 OLEcontainer,我宁愿记得以某种方式将实际的 excel 和 office 组件安装到组件面板上……这些组件可能是从 ocx 文件或 typelib 生成的,我不记得了。在哪里可以找到或获取在组件面板上生成 excel 和 office 组件的文件?它们是 ocx 吗?它们是否与我计算机上的 MS Office 副本一起提供?

是否有可以安装的 excel COM 或 activex 组件?我没记错,还是通过 OLEcontainer 组件使用 excel 的唯一方法?

编辑:它也可能是 excel 或 office 的自动化服务器组件

【问题讨论】:

  • 您的记忆有误,您发布的答案与您提出的问题不符。类型库导入可以在组件面板中创建项目,但它们都不允许您在表单中嵌入实际的电子表格。它们允许各种 Office 应用程序的自动化,但不能嵌入它们。在表单中嵌入实际电子表格并使用 Excel 的菜单和公式(无需购买第三方库)的唯一方法是通过 OLE 容器。此外,十年来,Delphi 一直在其安装中包含 Office 组件(通过包和类型库)。
  • 也许你不明白“嵌入”这个词的真正含义。即使在技术上是可行的,要完成这样的事情也需要极大的技巧。也许只嵌入 Excel 窗口。但是也单独嵌入工具栏,这不是 Excel 的设计方式。
  • Jerry Dodge,也许您错过了 COM、OLE 和 ActiveX 的全部意义。你知道 OLE 代表什么吗?对象链接和嵌入。 OLE 就是将诸如 excel 电子表格之类的对象链接和嵌入到另一个外部应用程序中。无需诡计。

标签: excel delphi com activex delphi-5


【解决方案1】:

你可以这样做:

FormCreate(或OnActivate..)中

OleContainer1.CreateLinkToFile( Edit1.Text, false );

这是结果:

【讨论】:

    【解决方案2】:

    弄清楚如何至少将 excel 组件导入 delphi 组件面板(但这些不适用于嵌入电子表格)。很多人点击“import activex control”,但不会导入excel电子表格组件,因为excel组件是类型库导入的。

    您不能像使用“导入 activex 控件”菜单项所想的那样导入 excel activex 控件,而是可以导入类型库。

    进入主菜单,点击项目——导入类型库

    向下滚动并找到 Microsoft Excel 14.0

    (或您拥有的任何版本的 excel...)

    然后安装。

    组件出现在activex选项卡下的组件面板上。

    那些是为了自动化。对于 OLE 嵌入,似乎 Ole 容器是要走的路。

    【讨论】:

    • 我不明白你将如何以这种方式嵌入 excel。
    • 这根本不能回答所提出的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 2010-09-15
    • 1970-01-01
    • 2012-01-19
    • 2021-11-02
    • 2010-12-05
    相关资源
    最近更新 更多