【问题标题】:How to Embed Microsoft office in Win form?如何以 Win 形式嵌入 Microsoft Office?
【发布时间】:2018-06-22 17:51:52
【问题描述】:

我无法以 Win 形式托管 MS Office。在做谷歌之后,我发现微软已经删除了 dsoframer.ocx。那么任何人都可以帮助我如何在winform中托管MS office?我找到了一些第三方工具,比如亿图。但是我想自己做而不使用任何第三方工具?

任何帮助将不胜感激。

【问题讨论】:

  • Microsoft Office 是一个包含许多工具的软件包。您能否向 S.O 用户说明您的目的是什么,更具体地说,您希望托管 MSO 包中的哪些程序?
  • 实际上我想在 Windows 窗体中嵌入 Microsoft Office/Excell/PP,以便用户可以从应用程序编辑/删除文件,但不能打开外部的任何文件。您能否建议任何可用的工具。以前我使用 dsoframer.ocx.control 来托管这个。
  • 可能有更合适的托管机制来实现与办公产品的互操作性(请参阅此处:stackoverflow.com/questions/757023/…),但是我不确定这会阻止精通 IT 的用户在您的外部编辑文件应用。此外,您可能需要考虑用户需要在其计算机上安装 MSO 才能实现 MSO 互操作性。

标签: c# winforms activex


【解决方案1】:

您正在寻找的是所谓的 OLE、对象链接和嵌入。 Microsoft Office 最初于 1990 年发布,是最后一个仍然支持它的主要 Microsoft 产品。时间对 OLE 并不友好,协议很复杂,很难做到正确。对程序稳定性也非常不利,您不仅会导入另一个程序的窗口和 UI,还会导入它的所有错误。

值得注意的是,.NET 框架在发布时根本没有任何支持。 Office 2007 是最后一个支持它的版本,但它存在一些令人讨厌且无法解决的问题。在 Office 2010 测试版发布之前,DsoFramer 已从 Microsoft 服务器中删除。

这已经一去不复返了。通过将 UI 嵌入到 Office 程序中前进,而不是相反。 VS 的 Office 项目模板得到了很好的支持。有支持在您自己的程序中嵌入文字处理器或电子表格的 3rd 方产品。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-29
    • 2014-03-29
    • 2020-09-27
    • 1970-01-01
    • 2015-10-23
    • 2022-06-30
    • 1970-01-01
    相关资源
    最近更新 更多