【发布时间】:2014-04-23 09:53:39
【问题描述】:
过去几个小时,我一直在努力尝试使用 Visual Studio 2012、C# 将 Excel 电子表格/工作簿显示在 Windows 窗体上。我可以从工作簿中检索数据并将其显示在表单上,但我需要在应用程序中使用 Excel 的功能,包括 Filtering、Conditional Formatting、Formulas 等内容。
我已经阅读了很多,据我了解,由于许可,Visual Studio 中没有嵌入这些 (Office) 文件的控件,这是有道理的。虽然我找到了一个解决方案,在WebControl 中显示文件(我相信我将能够使用它),但是当我尝试在 web 控件中加载 excel 文件时,它会提示用户要么打开或保存文件,选择“打开文件”时,使用Microsoft Excel打开该文件。
据我了解,这是因为需要在浏览器中设置文件的 ContentType(Mime 类型,Excel ContentType)(我需要对此进行更多研究,因为我还不熟悉这个概念, )。
我正在使用的资源:
- 将内容保存到 Excel 文件的逻辑:EPPlus
- 我正在从事以下项目,其中包括:Winforms Excel Example
后者几乎正是我想要实现的,但不断要求保存或打开文件,而不仅仅是在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