2009-04-08 7 views
3

Est-il possible d'extraire des informations d'un fichier Excel (.xls) en C# sur un ordinateur sans exceler installé?Est-il possible d'extraire des informations d'un fichier Excel dans C# sur un ordinateur sans Excel installé?

J'ai le code suivant:

 OleDbConnection objConn = new 
      OleDbConnection(CONNECTION_STRING.Replace("<FILENAME>", fileName)); 

      try 
      { 
       objConnection.Open(); 
      } 
      catch (Exception) 
      {} 

Il jette un IndexOutOfRangeException (« Vous ne trouvez pas la table 0 ») lorsque je tente d'ouvrir le OleDbConnection lorsqu'il est exécuté sur un ordinateur qui ne dispose pas installé Excel. Le même code fonctionne sur un ordinateur avec Excel fonctionne très bien. Je soupçonne donc très fortement le manque d'excellence pour être le coupable.

Est-ce le problème? Si c'est le cas, comment puis-je extraire des données du fichier?

+0

Il est possible que je ne peux pas confirmer pour le moment, mais est le table définie explicitement comme une table dans la feuille de calcul? –

+0

Quel type d'information voulez-vous extraire? Votre fichier est au format .xls ou .xlsx? –

Répondre

5

Découvrez l'open source NExcel. Dernière mise à jour il ya environ 2 ans, donc il ne prend pas en charge le nouveau format Excel 2007 .xlsx, mais va lire Excel 07-Excel 2003.

1

C'est possible. Si le format est .XLS utiliser Microsoft Jet OLEDB 4.0 (devrait fonctionner sans problèmes tant qu'il est exécuté sur un système 32 bits - il y a quelques problèmes avec les systèmes 64 bits) - que je soupçonne que vous avez déjà dérangé avec un peu. Vous êtes probablement sur le bon chemin.

Vérifiez ce lien dehors, il devrait expliquer au moins une partie de ce que vous devez savoir:

Reading and Writing Excel Spreadsheets Using ADO.NET C# DbProviderFactory

4

Il existe deux méthodes principales sans Excel installés

Utilisez les pilotes de base de données Jet pour ouvrir le fichier. Cela vous donnera accès aux valeurs des cellules dans les lignes, en traitant chaque feuille comme une table. Vous n'aurez accès à aucune des méta-informations (formatage, commentaires, etc.).

Utilisez SpreadsheetGear.NET, ce qui vous permet d'ouvrir, de créer, de manipuler et d'enregistrer des fichiers binaires Excel sans Excel ni aucune autre dépendance. SpreadSheetGear peut être téléchargé pour évaluation, mais coûte de l'argent pour la licence.

Questions connexes