Maison > développement back-end > C++ > Comment puis-je lire et manipuler efficacement les fichiers Excel directement dans C # sans bibliothèques externes?

Comment puis-je lire et manipuler efficacement les fichiers Excel directement dans C # sans bibliothèques externes?

Mary-Kate Olsen
Libérer: 2025-02-01 11:36:12
original
654 Les gens l'ont consulté

How Can I Efficiently Read and Manipulate Excel Files Directly in C# Without External Libraries?

Accès directement au fichier Excel dans C #: une approche rationalisée

L'automatisation de la gestion des données nécessite souvent des méthodes C # efficaces pour accéder directement aux fichiers Excel. Cela peut être réalisé efficacement en utilisant des bibliothèques facilement disponibles, gratuites ou open source.

Tiration du fournisseur Microsoft Jet OLEDB

Le fournisseur Microsoft Jet OLEDB offre une solution puissante. Il permet aux applications C # de se connecter aux fichiers Excel et de récupérer des données via des requêtes. Voici comment:

var filePath = Path.Combine(Directory.GetCurrentDirectory(), "fileNameHere.xlsx"); //Improved path handling
var connectionString = $"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={filePath};Extended Properties='Excel 12.0;HDR=YES;';"; //Updated for newer Excel versions and header detection

using (var connection = new OleDbConnection(connectionString))
{
    connection.Open();
    using (var command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection)) //Assumes sheet name "Sheet1"
    {
        using (var reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                //Process each row here
                string columnName1 = reader["ColumnName1"].ToString();
                // ... process other columns
            }
        }
    }
}
Copier après la connexion

Ce code se connecte au fichier Excel, exécute une requête (sélectionnant toutes les données à partir de "sheet1") et traite la ligne des résultats par ligne à l'aide d'un OleDbDataReader. Remarquez la chaîne de connexion mise à jour pour une meilleure compatibilité avec les versions Excel modernes et la gestion des erreurs améliorée à l'aide des instructions using.

Manipulation des données avec Linq

Pour une manipulation de données plus sophistiquée, Linq (Language Integrated Query) fournit un ensemble d'outils puissant. Alors que l'exemple ci-dessus traite directement les données du OleDbDataReader, vous pouvez remplir un DataTable puis utiliser linq:

// ... (previous code to populate a DataTable named 'dataTable') ...

var contacts = dataTable.AsEnumerable()
    .Where(row => !string.IsNullOrEmpty(row.Field<string>("phoneNumber")))
    .Select(row => new MyContact
    {
        FirstName = row.Field<string>("FirstName"),
        LastName = row.Field<string>("LastName"),
        PhoneNumber = row.Field<string>("phoneNumber")
    });
Copier après la connexion

Cette requête LINQ filtre les contacts avec les numéros de téléphone et les projette dans une classe MyContact personnalisée.

Cette approche combinée à l'aide du fournisseur Microsoft Jet OLEDB et LINQ offre un moyen efficace et flexible d'interagir avec les données Excel directement dans votre application C #, en évitant les complexités de l'analyse des données manuelles. N'oubliez pas de gérer les exceptions potentielles de manière appropriée dans un environnement de production.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal