【问题标题】:Embedding objects into Microsoft Word and OpenOffice Writer [closed]将对象嵌入 Microsoft Word 和 OpenOffice Writer [关闭]
【发布时间】:2011-01-02 15:22:08
【问题描述】:

我正在寻找一些关于如何实现以下功能的参考:

能够将对象(例如图表)嵌入文字处理器并能够在各自的“母”应用程序中编辑它们

例如,MS Word 和 Visio 就像这样一起工作,允许用户在将图表添加到文字处理器后轻松编辑/调整图表。

我对如何在以下平台上完成此操作感兴趣:

  • Microsoft Word
  • OpenOffice

目前我知道:

  • Microsoft Word 使用 OLE/COM
  • Open Office 使用UNO

您能否指出有关如何处理此问题的任何参考资料、示例和书籍?

【问题讨论】:

标签: com ms-office openoffice.org ole uno


【解决方案1】:

由于 OLE 几乎是一种史前技术(仍在使用),因此您必须深入了解 MSDN。下面链接的文章描述了一个可以嵌入到容器应用程序(例如 IE、Word 或 OpenOffice)中的示例应用程序。该示例基于 VC6,因此我不知道您需要多少运气才能让它在当前版本的 Visual Studio 上运行。

Creating an OLE Server

可能最简单的创建 OLE 控件 (.ocx) 的方法是使用旧的 Visual Basic 6。此处对此进行了描述:

How To Create and Use a Minimal ActiveX Component in VB

也可以在 C# 等托管代码中编写控件,但我认为不建议这样做1,因为如果当前进程已经在运行另一个版本的 CLR,它可能会导致冲突(到目前为止,一个进程中只能存在一个版本的 CLR,.NET 4.0 将引入 CLR 的并行执行)。我找到了以下教程:

Create ActiveX in .NET Step by Step

1请参阅 Andrew Whitechapel 在this article 底部的警告。

【讨论】:

  • 你说得对,它是旧技术,但我看到它被用于最新版本的 Microsoft Office。奇怪的是,没有关于如何使用当今技术进行正确 OLE 的文档。
  • 好吧,旧并不意味着它不好或不工作。只是文档有点旧,示例可能不适用于 VS 2008。
【解决方案2】:

这仍然可以在 Word 中使用 COM(或 OLE,但使用新名称时相同)轻松完成。根据您打算使用哪种语言,您会以不同的方式进行操作。本质上,您需要创建一种特定类型的 ActiveX 控件。

在 Delphi(最简单的语言)中,您可以在 COM dll 中创建一个ActiveXForm,然后您可以将其嵌入到您的 Word 文档中。您可以让您的应用程序在 Word 中做任何您想做的事情(与 Word 对话有点复杂,但可能)。

恐怕我不知道在 OpenOffice 中该做什么。

我认为您需要回答更具体的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 2020-03-04
    相关资源
    最近更新 更多