【问题标题】:Display Excel Spreadsheet in WinForms, C#在 WinForms、C# 中显示 Excel 电子表格
【发布时间】:2014-04-23 09:53:39
【问题描述】:

过去几个小时,我一直在努力尝试使用 Visual Studio 2012、C# 将 Excel 电子表格/工作簿显示在 Windows 窗体上。我可以从工作簿中检索数据并将其显示在表单上,​​但我需要在应用程序中使用 Excel 的功能,包括 FilteringConditional FormattingFormulas 等内容。

我已经阅读了很多,据我了解,由于许可,Visual Studio 中没有嵌入这些 (Office) 文件的控件,这是有道理的。虽然我找到了一个解决方案,在WebControl 中显示文件(我相信我将能够使用它),但是当我尝试在 web 控件中加载 excel 文件时,它会提示用户要么打开或保存文件,选择“打开文件”时,使用Microsoft Excel打开该文件。

据我了解,这是因为需要在浏览器中设置文件的 ContentType(Mime 类型,Excel ContentType)(我需要对此进行更多研究,因为我还不熟悉这个概念, )。

我正在使用的资源:

后者几乎正是我想要实现的,但不断要求保存或打开文件,而不仅仅是在WebControl中显示它

我们将不胜感激任何有关此事的帮助。

【问题讨论】:

  • there are no controls in Visual Studio to embed these (Office) files due to licencing, which makes sense.你听说过VSTO吗?
  • 不确定这对您有多大帮助,但check this out.. Afaik,您可以将整个 Excel 应用程序嵌入到 winforms 中。您可以使用 3rd 方库获得基本功能,但仅此而已.. 它不像在 linux 上运行“Wine”那样工作:P 您的客户需要在他的机器上安装一个 Excel,您可以使用 Com Interop(或 EPPlus)与它通信、OpenXML、ClosedXML 等)...或者选择 VSTO
  • 感谢您的帮助 - 我查看了 VSTO、Net Office 和 OWC(Office Web 控件),我能找到的唯一可以在表单上放置 excel 控件的包是 OWC11,但它似乎有很多错误,我找不到任何说明如何在 C# 中使用控件的示例,大部分给定的代码都在 VB 中。 EPPlus 提供了很好的保存到 excel 的功能,我还没有看过 OpenXML,但我高度考虑只使用数据网格,因为这开始看起来像死路了。

标签: c# winforms excel web-control


【解决方案1】:

有来自 DevExpress、Syncfusion 和 Infragistics 的商业 WinForms 库。我正在使用 DevExpress。我建议他们受 Excel 启发的WinForms Spreadsheet 控件。他们还有Spreadsheet File API for .NET 和用于 ASP.NET、MVC、WPF、ASP.NET Core 和 Bootstrap 的电子表格 UI 控件。

你可以试试他们的free 30-day trial,看看 DevExpress UI 控件是否适合你的需求。

【讨论】:

    【解决方案2】:

    如果没有,请使用 DataGridView 并编写功能! 要么 使用 Excel COM 创建 Excel 实例。

    【讨论】:

    • 我正在考虑使用 Datagrid 作为解决方法,因为我主要只需要过滤器选项。拥有一个具有所有功能的 excel 实例将是理想的,但是要让 excel 的东西(VSTONet OfficeOffice Web Components)实际工作需要很长时间。
    猜你喜欢
    • 1970-01-01
    • 2011-10-17
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多