如何在 C# winforms 中使用Microsoft Excel 作为网格控件

本文关键字:Excel Microsoft 控件 网格 winforms | 更新日期: 2023-09-27 18:34:19

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

我遇到过很多线程,谈论 excel"喜欢"控件或具有类似于 Excel 等功能的网格控件。

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

如何在 C# winforms 中使用Microsoft Excel 作为网格控件

您当然可以将 Excel 作为 WinForm 应用程序中的控件托管,因此您想要的部分内容是可能的(有重大警告(。但是,连接许多第三方网格库中的其余功能需要大量工作,并且存在许多陷阱。

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

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

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

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

早些时候,您可以使用DSOFramer来实现您想要的目标,但后来它停止了。我相信它仍然有效(我不确定(。Web 浏览器 (COM( 控件是 DSOFramer 的替代方法,但有其自身的缺点。例如,您不能使用内置的"好东西"。

以下只是个人的看法

我怀疑MS永远不会支持嵌入式Office应用程序,原因很简单。MS-Office 应用程序是"面向最终用户"的产品。您需要单独的许可证,从业务角度来看,他们不想失去该:)就像我之前提到的,这些只是我个人的想法,并不呼应MS的观点。