Heim >Backend-Entwicklung >C++ >Wie liest man mit C# effizient Daten aus Excel-Dateien?

Wie liest man mit C# effizient Daten aus Excel-Dateien?

Susan Sarandon
Susan SarandonOriginal
2025-01-11 16:37:41903Durchsuche

How to Efficiently Read Data from Excel Files Using C#?

Excel-Datenextraktion mit C# beherrschen

Der effiziente Umgang mit Excel-Dateien in C# erfordert ein klares Verständnis benannter Bereiche. Anstatt sich auf die Array-Indizierung zu verlassen, nutzen Sie die Methode get_Range() für eine präzise Zellenauswahl.

Um beispielsweise auf Zelle A1 zuzugreifen:

<code class="language-csharp">Excel.Worksheet sheet = workbook.Sheets["Sheet1"] as Excel.Worksheet;
Excel.Range range = sheet.get_Range("A1", Missing.Value);</code>

range stellt jetzt Zelle A1 dar. Greifen Sie auf den Inhalt zu mit:

  • range.Text: Zeigt den formatierten Text der Zelle an.
  • range.Value2: Ruft den zugrunde liegenden Zellwert ab (unformatiert).

Durchlaufen eines Zellbereichs:

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

if (range != null)
{
    foreach (Excel.Range r in range)
    {
        string userText = r.Text;
        object cellValue = r.Value2; //Note: object type for flexibility
    }
}</code>

Verwenden Sie unbedingt Value2 anstelle von Value, um mögliche C#-Einschränkungen zu vermeiden.

Grundlegende Reinigung

Verhindern Sie Speicherlecks, indem Sie COM-Objekte nach der Verwendung freigeben:

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

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

ReleaseRCM ist eine benutzerdefinierte Funktion zum Freigeben von COM-Ressourcen.

Illustratives Code-Snippet

<code class="language-csharp">using ExcelTools = Ms.Office; // Assuming a custom namespace
using Excel = Microsoft.Office.Interop.Excel;

...

Excel.Workbook wkb = ExcelTools.OfficeUtil.OpenBook(excel, file);

...

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

Excel.Range range = sheet.get_Range("A1", Missing.Value);

string cellA1Text = range.Text.ToString();

...</code>

Wichtige Überlegungen

  • Verstecken Sie die Excel-Anwendung während der Verarbeitung, indem Sie die Objektsichtbarkeit auf false setzen.
  • Entdecken Sie OleDb als praktikable Alternative für den Excel-Datenzugriff.
  • In diesem Beispiel werden C#s Type.Missing für optionale Parameter verwendet.

Dieser erweiterte Ansatz gewährleistet eine effiziente und zuverlässige Excel-Datenverarbeitung in Ihren C#-Anwendungen.

Das obige ist der detaillierte Inhalt vonWie liest man mit C# effizient Daten aus Excel-Dateien?. 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