VERGLEICH MIT ANDEREN KOMPONENTEN

EPPlus Read Excel to Datatable C# (IronXL Tutorial)

Regan Pun
Regan Pun
16. Mai 2023
Teilen Sie:

Suchen Sie nach einer Excel-Bibliothek, um Exceldaten in eine DataTable in C# einzulesen?

Das Einlesen von Excel-Dateien in ein DataTable in C# hat mehrere praktische Anwendungen in verschiedenen Branchen und Bereichen, wie beispielsweise Datenanalyse und -berichterstattung, Importieren von Daten in Datenbanken, Datenmigration, Datenvalidierung und -bereinigung, Integration mit anderen Systemen, Automatisierung und Stapelverarbeitung.

In diesem Artikel werden wir zwei verschiedene Excel-Bibliotheken für .NET Core in C# besprechen und vergleichen, die diese Funktion bieten, um Excel-Daten und Excel-Dateien in eine DataTable einzulesen. Die Bibliotheken sind

  1. EPPlus

  2. IronXL

1. EPPlus-Bibliothek

EPPlus ist eine leistungsstarke Open-Source-Bibliothek zur Erstellung und Bearbeitung von Excel-Dateien in C#. Es bietet eine einfache und intuitive API, die es Entwicklern ermöglicht, Excel-Tabellen programmatisch zu erstellen, zu lesen und zu ändern, ohne dass Microsoft Office oder Excel auf dem Server oder den Client-Rechnern installiert sein muss. Mit EPPlus können Sie auf einfache Weise Arbeitsblätter erstellen, Daten hinzufügen, Formatierungen vornehmen, Diagramme erstellen und andere Operationen mit Excel-Dateien durchführen. Es unterstützt sowohl das ältere .xls-Format als auch das neuere .xlsx-Format und bietet eine effiziente Leistungs- und Speicherverwaltung. Ganz gleich, ob Sie dynamische Berichte erstellen, Daten importieren/exportieren oder Excel-bezogene Aufgaben automatisieren möchten, EPPlus bietet eine umfassende Reihe von Funktionen und Möglichkeiten, um die Handhabung von Excel-Dateien in C#-Anwendungen zu vereinfachen.

2. IronXL

IronXL ist eine leistungsstarke und vielseitige Bibliothek, die Entwicklern die Möglichkeit bietet, Excel-Dateien innerhalb ihrer .NET-Anwendungen mühelos zu lesen, zu schreiben und zu manipulieren. Mit seiner intuitiven und umfassenden API vereinfacht IronXL den sonst so komplexen Prozess der Arbeit mit Tabellenkalkulationen und ermöglicht es Entwicklern, nahtlos Daten zu extrahieren, Berechnungen durchzuführen, Diagramme zu erstellen und Berichte zu generieren. Ob es um die Automatisierung von Datenimport/-exportaufgaben, die Durchführung von Datenanalysen oder die Erstellung dynamischer Excel-Vorlagen geht, IronXL bietet eine robuste Lösung, die Entwicklern wertvolle Zeit und Mühe erspart und gleichzeitig Genauigkeit und Zuverlässigkeit bei der Verarbeitung von Excel-Daten gewährleistet. Mit seiner nahtlosen Integration, der ausführlichen Dokumentation und der breiten Palette an Funktionen ist IronXL die erste Wahl für Entwickler, die ein zuverlässiges und effizientes Tool suchen, um die mit der Excel-Dateibearbeitung im .NET-Framework verbundenen Herausforderungen zu meistern.

3. Installation der EPPlus-Bibliothek

Um die EPPlus-Bibliothek in Ihrem C#-Projekt zu installieren, müssen Sie zunächst ein neues konsolenbasiertes Projekt in Visual Studio erstellen. Danach können Sie es einfach mit dem NuGet Package Manager installieren.

Sobald das neue Projekt erstellt ist, gehen Sie zu Tools und fahren Sie mit dem Mauszeiger über den NuGet Package Manager, dann wählen Sie "Manage NuGet Packages for Solution".

EPPlus Lesen von Excel in DataTable C# (IronXL Tutorial) Abbildung 1

Es erscheint ein neues Fenster. Wählen Sie in diesem neuen Fenster die Option "Durchsuchen" und suchen Sie nach "EPPlus". Es wird eine Liste der Pakete angezeigt, und Sie sollten die neueste stabile Version auswählen. Klicken Sie dann auf die Schaltfläche "Installieren" auf der rechten Seite, um die EPPlus-Bibliothek zu installieren.

EPPlus Lesen von Excel in DataTable C# (IronXL Tutorial) Abbildung 2

Auf diese Weise wird EPPlus zu Ihrem Projekt hinzugefügt.

4. Installation von IronXL

Es gibt viele Methoden, IronXL zu installieren, aber in diesem Abschnitt werden wir nur die Installation von IronXL über den NuGet Package Manager behandeln.

Erstellen Sie wie in Abschnitt 3 ein neues Projekt, gehen Sie zu "Tools" und öffnen Sie den NuGet Package Manager für Lösungen.

Geben Sie im neuen Fenster das Stichwort "IronXL" in die Suchleiste ein. Es erscheint eine Liste, aus der Sie das IronXL-Paket auswählen können, das Sie installieren möchten. Klicken Sie dann auf die Schaltfläche "Installieren", um IronXL in Ihrem Projekt zu installieren.

EPPlus Excel lesen in DataTable C# (IronXL Tutorial) Abbildung 3

IronXL ist jetzt einsatzbereit.

5. Lesen von Excel-Dateien und Daten in Datentabellen mit der EPPlus-Bibliothek

In diesem Abschnitt werden wir den Code untersuchen, um Excel als DataTable mithilfe der C# EPPlus-Paket-Excel-Bibliothek zu lesen.

Wir benötigen eine Beispiel-Excel-Datei, um sie als DataTable zu lesen. Zu diesem Zweck werden wir eine Excel-Beispieldatei erstellen.

EPPlus Excel in DataTable C# (IronXL Tutorial) Abbildung 4

Nachfolgend ist der Code zum Lesen der Excel-Datei als DataTable aufgeführt.


    using OfficeOpenXml;
    using System;
    using System.Data;
    using System.IO;

    class Program
    {
        static void Main(string [] args)
        {
            var path = @"sample.xlsx";
            var data = ExcelDataToDataTable(path, "Table");
            foreach (DataRow row in data.Rows)
            {
                foreach (var wsrow in row.ItemArray)
                {
                    Console.Write(wsrow);
                }
                Console.WriteLine();
            }

        }
        public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
        {
            DataTable dt = new DataTable();
            var fi = new FileInfo(filePath);
            // Check if the file exists
            if (!fi.Exists)
                throw new Exception("File " + filePath + " Does Not Exists");

            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            var xlPackage = new ExcelPackage(fi);
            // get the first worksheet in the workbook
            var worksheet = xlPackage.Workbook.Worksheets [sheetName];

            dt = worksheet.Cells [1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = true;
            });

            return dt;
        }
    }

    using OfficeOpenXml;
    using System;
    using System.Data;
    using System.IO;

    class Program
    {
        static void Main(string [] args)
        {
            var path = @"sample.xlsx";
            var data = ExcelDataToDataTable(path, "Table");
            foreach (DataRow row in data.Rows)
            {
                foreach (var wsrow in row.ItemArray)
                {
                    Console.Write(wsrow);
                }
                Console.WriteLine();
            }

        }
        public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
        {
            DataTable dt = new DataTable();
            var fi = new FileInfo(filePath);
            // Check if the file exists
            if (!fi.Exists)
                throw new Exception("File " + filePath + " Does Not Exists");

            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            var xlPackage = new ExcelPackage(fi);
            // get the first worksheet in the workbook
            var worksheet = xlPackage.Workbook.Worksheets [sheetName];

            dt = worksheet.Cells [1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = true;
            });

            return dt;
        }
    }
Imports OfficeOpenXml
	Imports System
	Imports System.Data
	Imports System.IO

	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim path = "sample.xlsx"
			Dim data = ExcelDataToDataTable(path, "Table")
			For Each row As DataRow In data.Rows
				For Each wsrow In row.ItemArray
					Console.Write(wsrow)
				Next wsrow
				Console.WriteLine()
			Next row

		End Sub
		Public Shared Function ExcelDataToDataTable(ByVal filePath As String, ByVal sheetName As String, Optional ByVal hasHeader As Boolean = True) As DataTable
			Dim dt As New DataTable()
			Dim fi = New FileInfo(filePath)
			' Check if the file exists
			If Not fi.Exists Then
				Throw New Exception("File " & filePath & " Does Not Exists")
			End If

			ExcelPackage.LicenseContext = LicenseContext.NonCommercial
			Dim xlPackage = New ExcelPackage(fi)
			' get the first worksheet in the workbook
			Dim worksheet = xlPackage.Workbook.Worksheets (sheetName)

			dt = worksheet.Cells (1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column).ToDataTable(Sub(c)
				c.FirstRowIsColumnNames = True
			End Sub)

			Return dt
		End Function
	End Class
$vbLabelText   $csharpLabel

Der obige Code ruft eine Methode auf, die Eingabeparameter wie den Dateipfad und den Blattnamen entgegennimmt und ein DataTable als Ausgabe zurückgibt.

5.1. Ausgabe

EPPlus Lesen von Excel in DataTable in C# (IronXL Tutorial) Abbildung 5

6. Lesen von Excel-Dateien als Datentabelle mit IronXL

Die Konvertierung eines Excel-Blattes und das Einlesen als DataTable ist mit IronXL ganz einfach, mit nur wenigen Zeilen Code. Außerdem werden wir die vorherige Excel-Datei als Eingabe verwenden.

Das folgende Codebeispiel führt die gleiche Funktionalität wie der obige Code aus, verwendet aber IronXL.


    using IronXL;
    using System;
    using System.Data;

    WorkBook workBook = WorkBook.Load("sample.xlsx");

    WorkSheet workSheet = workBook.DefaultWorkSheet;

    DataTable Table = workSheet.ToDataTable(true);

    foreach (DataRow row in Table.Rows)
    {
        for (int row = 0; row  < dataTable.Columns.Count; row ++)
        {
            Console.Write(row [row ] + " ");
        }
        Console.WriteLine();
    }

    using IronXL;
    using System;
    using System.Data;

    WorkBook workBook = WorkBook.Load("sample.xlsx");

    WorkSheet workSheet = workBook.DefaultWorkSheet;

    DataTable Table = workSheet.ToDataTable(true);

    foreach (DataRow row in Table.Rows)
    {
        for (int row = 0; row  < dataTable.Columns.Count; row ++)
        {
            Console.Write(row [row ] + " ");
        }
        Console.WriteLine();
    }
Imports IronXL
	Imports System
	Imports System.Data

	Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

	Private workSheet As WorkSheet = workBook.DefaultWorkSheet

	Private Table As DataTable = workSheet.ToDataTable(True)

	For Each row As DataRow In Table.Rows
		For row As Integer = 0 To dataTable.Columns.Count - 1
			Console.Write(row (row) & " ")
		Next row
		Console.WriteLine()
	Next row
$vbLabelText   $csharpLabel

Im obigen Codebeispiel laden wir einfach die Excel-Datei und konvertieren sie mithilfe der Methode workSheet.ToDataTable(true) in eine DataTable.

6.1 Ausgang

EPPlus Excel in DataTable lesen C# (IronXL Tutorial) Abbildung 6

7. Schlussfolgerung

Zusammenfassend lässt sich sagen, dass sowohl EPPlus als auch IronXL hervorragende Bibliotheken sind, die leistungsstarke Funktionen bieten und den Prozess vereinfachen, wenn es darum geht, Excel-Dateien zu lesen und in C# in DataTable zu konvertieren.

EPPlus ist eine Open-Source-Bibliothek, die eine einfache API für das programmatische Erstellen, Lesen und Ändern von Excel-Tabellen bereitstellt. Es unterstützt sowohl das .xls- als auch das .xlsx-Format und bietet eine effiziente Leistungs- und Speicherverwaltung.

Andererseits ist IronXL eine vielseitige Bibliothek, die es Entwicklern ermöglicht, mühelos mit Excel-Dateien in .NET-Anwendungen zu arbeiten. Es bietet eine intuitive API und umfassende Funktionen zum Extrahieren von Daten, Durchführen von Berechnungen, Erstellen von Diagrammen und Erstellen von Berichten. IronXL vereinfacht komplexe Excel-Dateimanipulationsaufgaben, wie z. B. Datenimport/-export, Datenanalyse und dynamische Vorlagenerstellung.

Vergleicht man die Codebeispiele von IronXL und EPPlus, so stellt man fest, dass der EPPlus-Code recht lang, komplex und schwer zu lesen ist. Andererseits ist der IronXL-Code recht einfach und leicht zu lesen. IronXL verwendet das Standard-Arbeitsblatt, aber in EPPlus müssen Sie den Namen des Arbeitsblatts angeben, sonst erhalten Sie eine Fehlermeldung.

Zusammenfassend würde ich IronXL gegenüber EPPlus für die Manipulation von Excel-Dateien und das Lesen von Excel-Dateien als DataTables empfehlen. Außerdem bietet IronXL viel mehr Funktionen als EPPlus bei der Bearbeitung von Excel-Dateien mit einfachem Code. Für weitere Tutorials zu IronXL besuchen Sie bitte den folgenden Link.

Regan Pun
Software-Ingenieur
Regan schloss sein Studium an der University of Reading mit einem BA in Elektrotechnik ab. Bevor er zu Iron Software kam, konzentrierte er sich in seinen früheren Jobs auf einzelne Aufgaben. Was ihm bei Iron Software am meisten Spaß macht, ist das Spektrum der Aufgaben, die er übernehmen kann, sei es im Vertrieb, im technischen Support, in der Produktentwicklung oder im Marketing. Es macht ihm Spaß, die Art und Weise zu verstehen, wie Entwickler die Bibliothek von Iron Software nutzen, und dieses Wissen zu nutzen, um die Dokumentation und die Produkte kontinuierlich zu verbessern.
< PREVIOUS
Zip-Archiv-Tutorial für C#-Entwickler mit IronXL
NÄCHSTES >
Ein Vergleich zwischen IronXL und FastExcel for .NET

Sind Sie bereit, loszulegen? Version: 2025.4 gerade veröffentlicht

Lizenzen anzeigen >