【问题标题】:How to use Microsoft Excel as a Grid control in C# winforms?如何在 C# winforms 中使用 Microsoft Excel 作为 Grid 控件?
【发布时间】:2012-05-15 20:07:29
【问题描述】:

有没有在典型的 winform C# 应用程序中使用 Microsoft Excel 作为网格控件的好示例。

我遇到了很多关于 excel 'like' 控件或网格控件的线程,它们的功能类似于 Excel 等。

为什么不使用 excel 作为 GRID 控件,它具有构建中的所有优点(公式引擎、排序、过滤等)

【问题讨论】:

    标签: c# excel winforms winforms-interop


    【解决方案1】:

    您当然 can host Excel 作为 WinForm 应用程序中的控件,所以您想要的部分是可能的(有主要警告)。然而,连接许多 3rd 方网格库中的其余功能需要大量工作,并且存在许多缺陷。

    主要原因是 Excel 是本机 Windows 应用程序,而不是在 .Net 框架下运行。因此,所有操作都必须在一定程度上完成 - 您必须实例化应用程序、实例化工作表、尝试订阅某些事件(其中许多可能不可用,因为 Excel 不是设计的 为此),当然,尝试并妥善管理所有 COM 引用以避免内存泄漏。

    您提到的网格控件都是从头开始构建为托管在 .Net 应用程序中的控件,因此围绕人们想要的网格样式交互类型公开属性和事件 - 请记住,Excel 不仅仅是一个网格。

    然而,好像承认 Excel 在以编程方式使用时可以成为一个强大的工具一样,Microsoft 提供了 VSTO - 一个允许您使用 .Net 开发 Excel(和其他办公应用程序)的运行时

    【讨论】:

      【解决方案2】:

      据我所知,没有用于嵌入 Office 应用程序的 .NET 控件。

      之前你可以使用DSOFramer 来实现你想要的,但后来它被停止了。我相信它仍然有效(我不确定)。 Web 浏览器 (COM) 控件是 DSOFramer 的替代品,但有其自身的缺点。例如,您不能使用内置的“Goodies”。

      以下只是我的个人意见

      我怀疑 MS 永远不会支持嵌入式 Office 应用程序,原因很简单。 MS-Office 应用程序是“以最终用户为目标”的产品。你需要单独的许可证,从商业角度来看,他们不想放弃它:) 就像我之前提到的,这些只是我个人的想法,不代表 MS 的观点。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        • 1970-01-01
        • 2021-07-06
        • 2019-03-14
        • 2012-10-24
        • 2017-03-20
        相关资源
        最近更新 更多