VERGLEICH MIT ANDEREN KOMPONENTEN

EPPlus Read Excel to Datatable C# (IronXL Tutorial)

Veröffentlicht 16. Mai 2023
Teilen Sie:

Suchen Sie eine Excel-Bibliothek, um Excel-Daten in eine "DataTable" in C# zu lesen?

Das Einlesen von Excel-Dateien in eine "Datentabelle" in C# hat mehrere praktische Anwendungen in verschiedenen Branchen und Bereichen, wie z. B. Datenanalyse und -berichterstattung, Import 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 zum Lesen von Excel-Daten und Excel-Dateien in eine "DataTable" bieten. 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 in ihren .NET-Anwendungen mühelos zu lesen, zu schreiben und zu bearbeiten. 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 Read Excel to DataTable C#(IronXL-Anleitung) 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 Read Excel to DataTable C#(IronXL-Anleitung) 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 Read Excel to DataTable C#(IronXL-Anleitung) Abbildung 3

IronXL ist jetzt einsatzbereit.

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

In diesem Abschnitt wird der Code zum Lesen von Excel als Datentabelle unter Verwendung der Excel-Bibliothek des C# EPPlus-Pakets untersucht.

Wir benötigen eine Excel-Beispieldatei, die als "Datentabelle" gelesen werden soll. Zu diesem Zweck werden wir eine Excel-Beispieldatei erstellen.

EPPlus Read Excel to DataTable C#(IronXL-Anleitung) Abbildung 4

Nachfolgend finden Sie den Code zum Lesen der Excel-Datei als Datentabelle.


    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
VB   C#

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

5.1. Ausgabe

EPPlus Read Excel to DataTable C#(IronXL-Anleitung) 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
VB   C#

Im obigen Codebeispiel laden wir einfach die Excel-Datei und konvertieren sie in eine Datentabelle, indem wir die Funktion "workSheet.ToDataTable" verwenden(wahr)methode.

6.1 Ausgang

EPPlus Read Excel to DataTable C#(IronXL-Anleitung) 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 unkomplizierte API zum programmgesteuerten Erstellen, Lesen und Ändern von Excel-Tabellen bietet. Es unterstützt sowohl das .xls- als auch das .xlsx-Format und bietet eine effiziente Leistungs- und Speicherverwaltung.

Andererseits,IronXL ist 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 Bearbeitung von Excel-Dateien und das Lesen von Excel-Dateien als Datentabellen empfehlen. Außerdem bietet IronXL viel mehr Funktionen als EPPlus bei der Bearbeitung von Excel-Dateien mit einfachem Code. Weitere Tutorials zu IronXL finden Sie unter folgenden Linkslink.

< 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: 2024.12 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 1,132,445 Lizenzen anzeigen >