Heim >Backend-Entwicklung >C++ >Wie kann man Excel-Daten mit C# effizient lesen und bearbeiten?

Wie kann man Excel-Daten mit C# effizient lesen und bearbeiten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-11 16:42:44345Durchsuche

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

C#- und Excel-Daten: Ein praktischer Leitfaden

In diesem Artikel werden effektive Methoden zum Lesen und Bearbeiten von Excel-Daten mit C# beschrieben. Das bereitgestellte Beispiel veranschaulicht das Öffnen einer Excel-Datei, das Kopieren ihres Inhalts und die Suche nach E-Mail-Adressen. Der direkte Zugriff auf und die Verarbeitung von Zellwerten erfordert jedoch ein Verständnis der einzigartigen Datenstruktur von Excel.

Excel-Datenstruktur: Benannte Bereiche

Im Gegensatz zu typischen Arrays verwendet Excel benannte Bereiche zum Speichern von Daten. Um auf eine bestimmte Zelle zuzugreifen, muss auf deren Bereichsnamen verwiesen werden (z. B. „A1“ für die Zelle oben links).

Nutzung des RangeObjekts

Das C#-Excel.Range-Objekt stellt eine Zelle oder eine Gruppe von Zellen in einem Excel-Arbeitsblatt dar. Die get_Range-Methode des Excel.Worksheet-Objekts ruft ein bestimmtes Range-Objekt ab. Zum Beispiel:

<code class="language-csharp">Excel.Range range = worksheet.get_Range("A1", Missing.Value);</code>

Zugriff auf Zellwerte: Text vs. Value2

Die Eigenschaft Text gibt den für den Benutzer sichtbaren Text zurück, während Value2 den zugrunde liegenden Wert bereitstellt (ohne Formatierung oder Rundung):

<code class="language-csharp">string userVisibleText = range.Text;
string rawValue = range.Value2;</code>

Durch Zellbereiche iterieren

Die foreach-Schleife durchläuft effizient eine Reihe von Zellen:

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

Ressourcenmanagement: Richtige Bereinigung

Für eine effiziente Ressourcenverwaltung geben Sie Excel-Objekte in umgekehrter Reihenfolge ihrer Erstellung frei. Da Excel.Application und Excel.Workbook IDisposable nicht implementieren, verwenden Sie eine benutzerdefinierte Release-Funktion (wie ReleaseRCM im Beispiel):

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

if (excel != null)
    ExcelTools.OfficeUtil.ReleaseRCM(excel);</code>

Vollständiges Codebeispiel

Dieser C#-Code demonstriert den Zugriff und die Anzeige des Werts von Zelle 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>

Fazit

Das erfolgreiche Arbeiten mit Excel-Daten in C# hängt vom Verständnis der bereichsbasierten Struktur von Excel ab. Die Verwendung des Excel.Range-Objekts und seiner Eigenschaften sowie eine sorgfältige Ressourcenverwaltung ermöglichen einen effizienten und zuverlässigen Datenzugriff und eine effiziente Datenbearbeitung.

Das obige ist der detaillierte Inhalt vonWie kann man Excel-Daten mit C# effizient lesen und bearbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn