Maison > développement back-end > C++ > Comment lire et manipuler efficacement des données Excel à l'aide de C# ?

Comment lire et manipuler efficacement des données Excel à l'aide de C# ?

Mary-Kate Olsen
Libérer: 2025-01-11 16:42:44
original
344 Les gens l'ont consulté

How to Efficiently Read and Manipulate Excel Data Using C#?

Données C# et Excel : un guide pratique

Cet article détaille les méthodes efficaces pour lire et manipuler des données Excel à l'aide de C#. L'exemple fourni illustre l'ouverture d'un fichier Excel, la copie de son contenu et la recherche d'adresses e-mail. Cependant, pour accéder et traiter directement les valeurs des cellules, il faut comprendre la structure de données unique d'Excel.

Structure des données d'Excel : plages nommées

Contrairement aux tableaux classiques, Excel utilise des plages nommées pour stocker les données. Pour accéder à une cellule spécifique, vous devez faire référence à son nom de plage (par exemple, « A1 » pour la cellule en haut à gauche).

Exploiter l'RangeObjet

L'objet C# Excel.Range représente une cellule ou un groupe de cellules dans une feuille de calcul Excel. La méthode get_Range de l'objet Excel.Worksheet récupère un objet Range spécifique. Par exemple :

<code class="language-csharp">Excel.Range range = worksheet.get_Range("A1", Missing.Value);</code>
Copier après la connexion

Accès aux valeurs des cellules : Text contre Value2

La propriété Text renvoie le texte visible par l'utilisateur, tandis que Value2 fournit la valeur sous-jacente (sans formatage ni arrondi) :

<code class="language-csharp">string userVisibleText = range.Text;
string rawValue = range.Value2;</code>
Copier après la connexion

Itération à travers les plages de cellules

La boucle foreach parcourt efficacement une plage de cellules :

<code class="language-csharp">foreach (Excel.Range cell in range1)
{
    string text = cell.Text;
    string value = cell.Value2;
}</code>
Copier après la connexion

Gestion des ressources : bon nettoyage

Pour une gestion efficace des ressources, publiez les objets Excel dans l'ordre inverse de leur création. Puisque Excel.Application et Excel.Workbook n'implémentent pas IDisposable, utilisez une fonction de version personnalisée (comme ReleaseRCM dans l'exemple) :

<code class="language-csharp">if (wkb != null)
    ExcelTools.OfficeUtil.ReleaseRCM(wkb);

if (excel != null)
    ExcelTools.OfficeUtil.ReleaseRCM(excel);</code>
Copier après la connexion

Exemple de code complet

Ce code C# montre l'accès et l'affichage de la valeur de la cellule A1 :

<code class="language-csharp">using System;
using ExcelTools = Ms.Office;
using Excel = Microsoft.Office.Interop.Excel;

namespace ExcelDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = @"C:\Users\Chris\Desktop\TestSheet.xls";
            Console.WriteLine(filePath);

            Excel.Application excelApp = null;
            Excel.Workbook workbook = null;

            try
            {
                excelApp = new Excel.Application();
                workbook = ExcelTools.OfficeUtil.OpenBook(excelApp, filePath, false, false, true);

                Excel.Worksheet sheet = workbook.Sheets["Data"] as Excel.Worksheet;

                if (sheet != null)
                {
                    Excel.Range cell = sheet.get_Range("A1", Missing.Value);
                    string a1Value = cell != null ? cell.Text.ToString() : "";
                    Console.WriteLine("A1 value: {0}", a1Value);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                if (workbook != null)
                    ExcelTools.OfficeUtil.ReleaseRCM(workbook);

                if (excelApp != null)
                    ExcelTools.OfficeUtil.ReleaseRCM(excelApp);
            }
        }
    }
}</code>
Copier après la connexion

Conclusion

Travailler avec succès avec des données Excel en C# dépend de la compréhension de la structure basée sur les plages d'Excel. L'utilisation de l'objet Excel.Range et de ses propriétés, ainsi qu'une gestion minutieuse des ressources, permettent un accès et une manipulation efficaces et fiables des données.

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!

source:php.cn
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