C# – 使用Interop命名空间删除Excel行

我正在searchC#的方式删除(空)工作表中的Excel行而不使用Microsoft.Office.Interop.Excel命名空间。

find很多像C#这样的Interop命名空间和excel删除行的例子。 但有没有办法做到这一点,没有第三方工具 – 只有与.NET?

感谢您的帮助!

处理仅依赖于标准.NET Framework命名空间的Excel文件的选项是有限的。 想到两种可能性。 第一个是“最简单的”,但只有在您的主要兴趣是将内容用作数据库时才适用。 第二种方法可以让你用Excel工作簿做很多的“事情”,但是学习曲线会很陡峭。

这两种方法都适合在服务器环境中工作(不像那些需要Excel应用程序的环境)并且不需要任何许可证。

  1. 您可以使用OLE DB连接(ACE OLE DB提供程序)与Excel工作簿的内容进行通信。 它允许连接到单个工作表以及命名范围。 支持基本的SQLfunction。
  2. Excel 2007及更高版本的文件格式是Office Open XML(OOXML)。 这些文件是包含构成工作簿的文件(大部分是xml)的“zip包”。 因此,任何可以使用Zip包和XML的标准工具都可以用来打开Excel工作簿,编辑内容,然后closures工作簿。 在.NET Framework中,这些将是System.IO.Packaging(在WindowsBase.dll中,通常需要特别引用)和System.XML命名空间。

    文件格式的文件是ECMA-376标准( http://www.ecma-international.org/publications/standards/Ecma-376.htm )。 一个有用的在线资源是openxmldeveloper.org。

    请注意,Microsoft还提供了Open XML SDK,这是一个免费下载,可免费使用您的解决scheme进行免费发布。 Open XML SDK减less了“学习曲线”,因为它减less了您需要的有关OOXML文件格式的知识。 我提到这是为了完整性,因为我知道直接使用文件格式是多么具有挑战性。 另外,由于DLL可以自由分发,可以作为解决scheme的一部分进行复制,因此可能会满足您的要求。

这个stackoverflow后可能会有所帮助 – 它讨论了一些库,可以操作excel而不需要安装Office。 这个问题关于VB.NET,但我相信所讨论的选项也可以与C#一起工作…

如何在没有安装Office的情况下处理vb.net中的excel文件