8

我已经开始使用 Microsoft 为我的一个 C# 应用程序提供的 Excel 互操作程序集。一切都很好,但似乎缺乏强类型,老实说,感觉就像我在写 VBA 代码。是否有任何替代方法可以通过 C# 与 Excel 进行交互,从而提供更好的 OO 体验?顺便说一句,我正在使用 VS2010 和 .Net 4.0。

4

7 回答 7

10

看看 Codeplex 上的 EPPlus 项目:

http://epplus.codeplex.com/

我最近用过这个,效果很好。(VS2010 和 .Net4)

EPPlus 是一个 .net 库,它使用 Open Office Xml 格式 (xlsx) 读取和写入 Excel 2007/2010 文件。

不错的示例页面:http ://epplus.codeplex.com/wikipage?title=ContentSheetExample

于 2011-08-09T20:10:41.993 回答
1

根据您尝试执行的操作,例如生成 XLSX 文档,您可以使用Open XML SDK

这非常适合生成办公文档;特别是因为它不需要安装办公室即可使用。

免费; 一个漂亮干净的 API,并得到 Microsoft 的支持。例如:

public static void CreateNewWordDocument(string document)
{
    using (WordprocessingDocument wordDoc = WordprocessingDocument.Create(document, WordprocessingDocumentType.Document))
    {
        // Set the content of the document so that Word can open it.
        MainDocumentPart mainPart = wordDoc.AddMainDocumentPart();

        SetMainDocumentContent(mainPart);
    }
}

示例来自:http: //msdn.microsoft.com/en-us/library/bb497758.aspx这里有使用电子表格的示例。

如果您尝试直接与 Excel 交互(如 UI 自动化);不生成文件;那么 KeithS 的回答是我会怎么走。

于 2011-08-09T20:12:14.333 回答
1

NetOffice库是 Office Primary Interop Assemblies (PIA)的替代方案。NetOffice 提供了一组与版本无关的互操作库,因此您可以在您的应用中支持所有 Office 版本,并包含 IntelliSense 以向您显示在哪些 Office 版本下可用的方法。

NetOffice 还有助于跟踪 COM 引用,这在 .NET / COM 互操作中有时会很麻烦。

于 2012-03-01T13:24:15.263 回答
0

您在寻找什么类型的互动?只是写作?阅读?全面控制各个方面?

有很多第三方库可用于处理 Excel 文档,尤其是当您使用 xlsx 格式(2007 或更新版本)时。如果您只是写东西,甚至可以查看开源实现(例如,Sourceforge 有Excel Writer)。

于 2011-08-09T20:09:31.993 回答
0

ExcelLibrary 非常好。http://code.google.com/p/excellibrary/

于 2011-08-09T20:10:49.703 回答
0

2020 年, https://github.com/ClosedXML/ClosedXML上的 ClosedXML 库似乎非常有能力生成 Excel 文件。它基于 Microsoft 的 Open XML SDK ( https://github.com/OfficeDev/Open-XML-SDK )。它不需要在计算机/服务器上安装 Excel 即可工作。显然,您可以使用它在 Web 服务器上生成 Excel 文件。它有一组非常好的对象,这些对象公开了操作 Excel 文件的相对简单的方法。

于 2020-11-12T21:55:57.960 回答
-2

OLE 自动化是应用程序进行通信的 Windows 标准方式,而不是剪贴板。因为不是每种需要 OLE 的语言都具有泛型(甚至是强静态类型),所以接口必然非常通用。

如果您只是拒绝使用 OLE,您可以使用 Windows 脚本主机来移动 GUI 本身并以这种方式获取数据,或者使用 WinAPI DLL 进行屏幕抓取。您还可以根据 XLS 和 XLSX 文件的文档标准为 Excel 文件编写或滑动 ETL。无论如何,我认为使用 OLE 的缺点可以通过您不必尝试以任何其他方式与 Excel 交互的极端优势来减轻。

于 2011-08-09T20:12:04.003 回答