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
Freigeben: 2025-01-11 16:42:44
Original
360 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage