Heim >Backend-Entwicklung >C++ >Wie kann man Excel-Daten mit C# effizient lesen und bearbeiten?
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 Range
Objekts
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!