在C#中使用7zip提取.xlsx文件

问题描述:

我正在寻找一种方式来在C#中以编程方式提取或“解压缩”.xls和.xlsx文件。如果我使用7zip来提取一个.xlsx文件,那么我会对组成.xlsx的所有.xml文件做一个很好的小突破。我真的不知道从哪里开始尝试,而Google-foo迄今为止失败了。有什么建议?在C#中使用7zip提取.xlsx文件

感谢

+1

你尝试过什么?你有没有在System.IO.Compression中检查ZipArchive类? –

+0

为了澄清,你试图解压缩一个压缩文件(即.zip或.7z等)的权利,而不是试图解压缩excel文件? – Hack

+0

@Lasse我还没有看过ZipArchive类,但我现在就来看看。 – user1971240

尝试做如下:

using System; 
using System.IO; 
using System.IO.Compression; 

namespace ConsoleApplication 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      string xlsPath = @"c:\example\YourFile.xlsx"; 
      string extractPath = @"c:\example\extract"; 
      string zipPath = Path.ChangeExtension(xlsPath, "zip"); 

      if (File.Exists(zipPath)) 
      { 
       File.Delete(zipPath); 
      } 

      File.Copy(xlsPath, zipPath); 

      ZipFile.ExtractToDirectory(zipPath, extractPath); 
     } 
    } 
} 

控制台应用程序上面的文件到指定位置 副本,那么你可以将它解压缩是任何你下一步想做内容。

你不应该需要7Zip这个。

正如哈克在他的评论中所说的,如果你想修改/读取excel数据,有很多更好的方法可以做到这一点。

这里有几个可以与Excel文件的工作库:

  1. http://npoi.codeplex.com
  2. http://code.google.com/archive/p/excellibrary