2017-09-21 5 views
0

Je cherche un moyen d'extraire ou de "décompresser" les fichiers .xls et .xlsx par programmation en C#. Si j'utilise 7zip pour extraire un fichier .xlsx, j'obtiens une belle petite décomposition de tous les fichiers .xml qui composent le fichier .xlsx. Honnêtement, je n'ai aucune idée d'où commencer à essayer cela, et Google-foo m'a échoué jusqu'à présent. Aucun conseil?Extraction de fichiers .xlsx comme avec 7zip en C#

Merci

+1

Qu'avez-vous essayé? Avez-vous vérifié la classe ZipArchive dans System.IO.Compression? –

+0

Juste pour clarifier, vous essayez de décompresser un fichier compressé (c'est-à-dire .zip ou .7z etc.) à droite, ne pas essayer de décompresser un fichier Excel? – Hack

+0

@Lasse Je n'ai pas regardé dans la classe ZipArchive, mais je vais maintenant. – user1971240

Répondre

1

Essayez de faire ce qui suit:

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); 
     } 
    } 
} 

L'application de la console ci-dessus copie le fichier à un emplacement spécifié vous pouvez décompresser son contenu pour tout ce que vous voulez faire.

Vous ne devriez pas avoir besoin de 7Zip pour cela. Comme l'a dit Hack dans son commentaire, si vous essayez de modifier/lire les données Excel, il y a de bien meilleures façons d'y parvenir.

Voici quelques bibliothèques qui peuvent travailler avec des fichiers Excel:

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