【发布时间】:2012-05-15 20:07:29
【问题描述】:
有没有在典型的 winform C# 应用程序中使用 Microsoft Excel 作为网格控件的好示例。
我遇到了很多关于 excel 'like' 控件或网格控件的线程,它们的功能类似于 Excel 等。
为什么不使用 excel 作为 GRID 控件,它具有构建中的所有优点(公式引擎、排序、过滤等)
【问题讨论】:
标签: c# excel winforms winforms-interop
有没有在典型的 winform C# 应用程序中使用 Microsoft Excel 作为网格控件的好示例。
我遇到了很多关于 excel 'like' 控件或网格控件的线程,它们的功能类似于 Excel 等。
为什么不使用 excel 作为 GRID 控件,它具有构建中的所有优点(公式引擎、排序、过滤等)
【问题讨论】:
标签: c# excel winforms winforms-interop
您当然 can host Excel 作为 WinForm 应用程序中的控件,所以您想要的部分是可能的(有主要警告)。然而,连接许多 3rd 方网格库中的其余功能需要大量工作,并且存在许多缺陷。
主要原因是 Excel 是本机 Windows 应用程序,而不是在 .Net 框架下运行。因此,所有操作都必须在一定程度上完成 - 您必须实例化应用程序、实例化工作表、尝试订阅某些事件(其中许多可能不可用,因为 Excel 不是设计的 为此),当然,尝试并妥善管理所有 COM 引用以避免内存泄漏。
您提到的网格控件都是从头开始构建为托管在 .Net 应用程序中的控件,因此围绕人们想要的网格样式交互类型公开属性和事件 - 请记住,Excel 不仅仅是一个网格。
然而,好像承认 Excel 在以编程方式使用时可以成为一个强大的工具一样,Microsoft 提供了 VSTO - 一个允许您使用 .Net 开发 Excel(和其他办公应用程序)的运行时
【讨论】:
据我所知,没有用于嵌入 Office 应用程序的 .NET 控件。
之前你可以使用DSOFramer 来实现你想要的,但后来它被停止了。我相信它仍然有效(我不确定)。 Web 浏览器 (COM) 控件是 DSOFramer 的替代品,但有其自身的缺点。例如,您不能使用内置的“Goodies”。
以下只是我的个人意见
我怀疑 MS 永远不会支持嵌入式 Office 应用程序,原因很简单。 MS-Office 应用程序是“以最终用户为目标”的产品。你需要单独的许可证,从商业角度来看,他们不想放弃它:) 就像我之前提到的,这些只是我个人的想法,不代表 MS 的观点。
【讨论】: