Excel-Dateien in C# mit Kostenlosen und Open Source Bibliotheken Lesen

Haben Sie jemals Schwierigkeiten, Excel-Dateien direkt in Ihren C#-Anwendungen zu lesen? Wenn ja, sind Sie nicht allein! Viele Entwickler stehen vor der Herausforderung, Daten aus Excel-Tabellen herauszuholen, ohne auf manuelle Prozesse angewiesen zu sein. Die gute Nachricht ist, dass es effiziente und kostenlose Methoden gibt, dies mithilfe von Open-Source-Bibliotheken zu erreichen. In diesem Blog-Beitrag werden wir erkunden, wie Sie Excel-Dateien (.xls) direkt aus einem C#-Programm lesen können, ohne mühsame manuelle Schritte durchführen zu müssen.

Das Problem: Manuelle Verarbeitung von Excel-Dateien

Traditionell entscheiden sich viele Entwickler für einen manuellen Ansatz, indem sie Excel-Tabellen in ein Unicode-Textformat exportieren und dann die resultierenden tabulatorgetrennten Dateien parsen. Auch wenn das funktioniert, ist es nicht die effizienteste Methode. Sie könnten es als umständlich empfinden, besonders wenn Sie diesen Prozess häufig wiederholen oder mehrere Dateien bearbeiten müssen.

Glücklicherweise gibt es bessere Möglichkeiten, Excel-Dateien programmgesteuert zu lesen. Lassen Sie uns in die Lösung eintauchen!

Die Lösung: Verwendung von OLE DB zum Lesen von Excel-Dateien

Eine der einfachsten Methoden, Excel-Dateien in C# zu lesen, ist die Verwendung des OLE DB (Object Linking and Embedding Database) Anbieters. Mit OLE DB können Sie sich mit Excel-Dateien verbinden, als ob sie Datenbanken wären, und SQL-Abfragen ausführen, um die benötigten Daten abzurufen. So machen Sie es Schritt für Schritt:

Schritt 1: Einrichten Ihrer Verbindung

Bevor Sie die Daten lesen, müssen Sie eine Verbindung zu Ihrer Excel-Datei einrichten. Hier ist ein Beispiel, wie Sie Ihre Verbindungszeichenfolge formatieren:

var fileName = string.Format("{0}\\fileNameHere", Directory.GetCurrentDirectory());
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
  • fileName: Diese Variable enthält den Pfad zu Ihrer Excel-Datei.
  • connectionString: Dies ist die Verbindung zur Excel-Datei, die die Anbieter- und Datenquelleninformationen enthält.

Schritt 2: Daten Abrufen

Jetzt, da Sie die Verbindung hergestellt haben, können Sie Daten aus einem bestimmten Arbeitsblatt mit einem OleDbDataAdapter abrufen. Hier ist der Code, um alle Daten aus dem Arbeitsblatt zu holen:

var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString);
var ds = new DataSet();

// Füllen Sie das DataSet mit den abgerufenen Daten
adapter.Fill(ds, "anyNameHere");
DataTable data = ds.Tables["anyNameHere"];
  • Ersetzen Sie workSheetNameHere durch den tatsächlichen Namen des Blattes, aus dem Sie Daten lesen möchten.

Schritt 3: LINQ zur Datenmanipulation Verwenden

Sobald Sie die Daten in einer DataTable haben, können Sie LINQ (Language Integrated Query) verwenden, um die Daten einfach zu manipulieren und abzufragen. Wenn Sie alle Zeilen herausfiltern möchten, in denen ein bestimmtes Feld leer ist, so können Sie das wie folgt tun:

var data = ds.Tables["anyNameHere"].AsEnumerable();

var query = data.Where(x => x.Field<string>("phoneNumber") != string.Empty).Select(x =>
    new MyContact
    {
        firstName = x.Field<string>("First Name"),
        lastName = x.Field<string>("Last Name"),
        phoneNumber = x.Field<string>("Phone Number"),
    });

Zusammenfassung der wichtigsten Punkte

Zusammenfassend lässt sich sagen, dass das Lesen von Excel-Dateien in C# mit einem OLE DB-Anbieter unkompliziert ist und die Notwendigkeit manueller Dateioperationen beseitigt. Hier sind die wichtigsten Punkte, die Sie sich merken sollten:

  • Richten Sie eine korrekte Verbindungszeichenfolge mit dem OLE DB-Anbieter ein.
  • Daten aus Excel abrufen mit dem OleDbDataAdapter.
  • Nutzen Sie LINQ, um die extrahierten Daten zu filtern und zu manipulieren.

Durch das Befolgen dieser Schritte können Sie eine nahtlose Integration zum Lesen von Excel-Dateien direkt in Ihren C#-Anwendungen schaffen.

Fazit

Effizientes Lesen von Excel-Dateien in C# muss kein Problem sein. Mit dem Ansatz, den wir skizziert haben, können Sie den Prozess automatisieren, Zeit sparen und sich auf das Wesentliche in Ihrer Anwendungsentwicklung konzentrieren.

Jetzt, da Sie mit dem Wissen ausgestattet sind, manuelle Schritte beim Lesen von Excel-Dateien zu beseitigen, probieren Sie es in Ihren Projekten aus!