Lire des fichiers Excel en C# avec des bibliothèques gratuites et open source

Avez-vous déjà eu des difficultés à lire des fichiers Excel directement dans vos applications C# ? Si c’est le cas, vous n’êtes pas seul ! De nombreux développeurs rencontrent le défi d’extraire des données à partir de feuilles de calcul Excel sans recourir à des processus manuels. La bonne nouvelle est qu’il existe des méthodes efficaces et gratuites pour y parvenir en utilisant des bibliothèques open source. Dans cet article de blog, nous allons explorer comment vous pouvez lire des fichiers Excel (.xls) directement depuis un programme C#, éliminant ainsi la nécessité de passer par des étapes manuelles ennuyeuses.

Le problème : Traitement manuel des fichiers Excel

Traditionnellement, de nombreux développeurs optent pour une approche manuelle en exportant des feuilles Excel au format texte Unicode, puis en analysant les fichiers résultants, séparés par des tabulations. Bien que cela fonctionne, ce n’est pas la méthode la plus efficace. Vous pourriez la trouver encombrante, surtout si vous devez répéter ce processus fréquemment ou traiter plusieurs fichiers.

Heureusement, il existe de meilleures façons de lire des fichiers Excel par programmation. Plongeons dans la solution !

La solution : Utiliser OLE DB pour lire des fichiers Excel

L’une des méthodes les plus simples pour lire des fichiers Excel en C# consiste à utiliser le fournisseur OLE DB (Object Linking and Embedding Database). Avec OLE DB, vous pouvez vous connecter à des fichiers Excel comme s’il s’agissait de bases de données et exécuter des requêtes SQL pour récupérer les données dont vous avez besoin. Voici comment procéder étape par étape :

Étape 1 : Configurez votre connexion

Avant de lire les données, vous devez établir une connexion à votre fichier Excel. Voici un exemple de comment formater votre chaîne de connexion :

var fileName = string.Format("{0}\\fileNameHere", Directory.GetCurrentDirectory());
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
  • fileName : Cette variable contient le chemin vers votre fichier Excel.
  • connectionString : Ceci est la connexion au fichier Excel qui comprend les informations sur le fournisseur et la source de données.

Étape 2 : Récupérer les données

Maintenant que vous avez établi la connexion, vous pouvez récupérer des données d’une feuille de calcul spécifique en utilisant un OleDbDataAdapter. Voici le code pour extraire toutes les données de la feuille de calcul :

var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString);
var ds = new DataSet();

// Remplir le DataSet avec les données récupérées
adapter.Fill(ds, "anyNameHere");
DataTable data = ds.Tables["anyNameHere"];
  • Remplacez workSheetNameHere par le nom réel de la feuille dont vous souhaitez lire les données.

Étape 3 : Utiliser LINQ pour la manipulation des données

Une fois que vous avez les données dans un DataTable, vous pouvez utiliser LINQ (Language Integrated Query) pour manipuler et interroger les données facilement. Si vous souhaitez filtrer les lignes où un champ spécifique est vide, voici comment vous pouvez le faire :

var data = ds.Tables["anyNameHere"].AsEnumerable();

var query = data.Where(x => x.Field<string>("phoneNumber") != string.Empty).Select(x =>
    new MyContact
    {
        firstName = x.Field<string>("First Name"),
        lastName = x.Field<string>("Last Name"),
        phoneNumber = x.Field<string>("Phone Number"),
    });

Résumé des points clés

Pour résumer, lire des fichiers Excel en C# en utilisant un fournisseur OLE DB est simple et élimine la nécessité de traiter manuellement les fichiers. Voici les points clés à retenir :

  • Configurez une chaîne de connexion appropriée en utilisant le fournisseur OLE DB.
  • Récupérez des données d’Excel en utilisant OleDbDataAdapter.
  • Exploitez LINQ pour filtrer et manipuler les données extraites.

En suivant ces étapes, vous pouvez créer une intégration fluide pour lire des fichiers Excel directement dans vos applications C#.

Conclusion

Lire des fichiers Excel efficacement en C# ne doit pas être un casse-tête. Avec l’approche que nous avons décrite, vous pouvez automatiser le processus, gagner du temps et vous concentrer sur ce qui compte vraiment dans le développement de votre application.

Maintenant que vous êtes équipé du savoir pour éliminer les étapes manuelles dans la lecture de fichiers Excel, n’hésitez pas à essayer dans vos projets !