C# XLSX-Datei lesen

Chaknith Bin
Chaknith Bin
17. Juni 2020
Aktualisiert 20. Oktober 2024
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Bei der Arbeit mit verschiedenen Excel-Formaten ist es oft erforderlich, die Daten zu lesen und sie programmatisch zu bearbeiten. Im folgenden Tutorial lernen wir, wie man mit dem praktischen Tool IronXL Daten aus einer Excel-Tabelle in C# liest.


Schritt 1

1. Holen Sie sich IronXL für Ihr Projekt

Verwenden Sie IronXL in Ihrem Projekt für eine einfache Möglichkeit, mit Excel-Dateiformaten in C# zu arbeiten. Sie können entwederironXL über den direkten Download installieren oder alternativ können Sie verwendenNuGet-Installation für Visual Studio. Die Software ist für die Entwicklung kostenlos.

Install-Package IronXL.Excel

Anleitung zum Tutorial

2. WorkBook laden

workBook" ist die Klasse von IronXL, deren Objekt vollen Zugriff auf die Excel-Datei und ihre gesamten Funktionen bietet. Wenn wir zum Beispiel auf eine Excel-Datei zugreifen wollen, verwenden wir den folgenden Code:

/**
Load Workbook
anchor-load-workbook
**/
WorkBook wb = WorkBook.Load("sample.xlsx");//Excel file path
/**
Load Workbook
anchor-load-workbook
**/
WorkBook wb = WorkBook.Load("sample.xlsx");//Excel file path

Im obigen Code wird WorkBook.Load()die Funktion lädt "sample.xlsx" in "wb". Jede Art von Funktion kann aufwb` ausgeführt werden, indem auf das spezifische Arbeitsblatt einer Excel-Datei zugegriffen wird.


3. Zugriff auf spezifisches WorkSheet

Um auf das spezifische Arbeitsblatt einer Excel-Datei zuzugreifen, bietet IronXL die Klasse WorkSheet. Er kann auf verschiedene Weise verwendet werden:

/**
Access Sheet by Name
anchor-access-specific-worksheet
**/
WorkSheet ws = wb.GetWorkSheet("Sheet1"); //by sheet name
/**
Access Sheet by Name
anchor-access-specific-worksheet
**/
WorkSheet ws = wb.GetWorkSheet("Sheet1"); //by sheet name

wb" ist das WorkBook, das im obigen Teil deklariert wird.

OR

/**
Access Sheet by Index
anchor-access-specific-worksheet
**/
WorkSheet ws = wb.WorkSheets [0]; //by sheet index
/**
Access Sheet by Index
anchor-access-specific-worksheet
**/
WorkSheet ws = wb.WorkSheets [0]; //by sheet index

OR

WorkSheet ws = wb.DefaultWorkSheet; //for the default sheet: 
WorkSheet ws = wb.DefaultWorkSheet; //for the default sheet: 

OR

WorkSheet ws = wb.WorkSheets.First();//for the first sheet:
WorkSheet ws = wb.WorkSheets.First();//for the first sheet:

OR

WorkSheet ws = wb.WorkSheets.FirstOrDefault();//for the first or default sheet:
WorkSheet ws = wb.WorkSheets.FirstOrDefault();//for the first or default sheet:

Nachdem Sie ExcelSheet ws erhalten haben, können Sie jede Art von Daten daraus abrufen und alle Excel-Funktionen darauf ausführen.


4. Zugriff auf Daten aus WorkSheet

Dabei kann auf Daten aus dem ExcelSheet ws zugegriffen werden:

string c = ws ["cell address"].ToString(); //for string
Int32 val = ws ["cell address"].Int32Value; //for integer
string c = ws ["cell address"].ToString(); //for string
Int32 val = ws ["cell address"].Int32Value; //for integer

Es ist auch möglich, Daten aus vielen Zellen einer bestimmten Spalte abzurufen.

foreach (var cell in ws ["A2:A10"])
{
    Console.WriteLine("value is: {0}",  cell.Text);
}
foreach (var cell in ws ["A2:A10"])
{
    Console.WriteLine("value is: {0}",  cell.Text);
}

Es werden die Werte von Zelle A2 bis A10 angezeigt.

Ein vollständiges Code-Beispiel für die obigen Angaben finden Sie hier.

/**
Access WorkSheet Data
anchor-access-data-from-worksheet
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    foreach (var cell in ws ["A2:A10"])
    {
        Console.WriteLine("value is: {0}", cell.Text);
    }
    Console.ReadKey();
}
/**
Access WorkSheet Data
anchor-access-data-from-worksheet
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    foreach (var cell in ws ["A2:A10"])
    {
        Console.WriteLine("value is: {0}", cell.Text);
    }
    Console.ReadKey();
}

Es wird das folgende Ergebnis angezeigt:

Doc3 Input1 related to 4. Zugriff auf Daten aus WorkSheet

Mit der Excel-Datei Sample.xlsx :

Doc3 1 related to 4. Zugriff auf Daten aus WorkSheet

Wir können sehen, wie mühelos es ist, Daten aus Excel-Dateien in Ihrem Projekt mit diesen Methoden zu verwenden.


5. Funktionen für Daten ausführen

Es ist sehr einfach, auf gefilterte Daten aus einem Excel-Arbeitsblatt zuzugreifen, indem Sie Aggregatfunktionen wie Summe, Min oder Max mit dem folgenden Code anwenden:

decimal sum = ws ["From:To"].Sum();
decimal min = ws ["From:To"].Min();
decimal max = ws ["From:To"].Max();
decimal sum = ws ["From:To"].Sum();
decimal min = ws ["From:To"].Min();
decimal max = ws ["From:To"].Max();

Wenn Sie weitere Einzelheiten erfahren möchten, lesen Sie unsere ausführliche Anleitung zu How toC# Excel-Dateien schreiben mit spezifischen Angaben zu den Aggregatfunktionen.

/**
Sum Min Max Functions
anchor-perform-functions-on-data
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    decimal sum = ws ["G2:G10"].Sum();
    decimal min = ws ["G2:G10"].Min();
    decimal max = ws ["G2:G10"].Max();

    Console.WriteLine("Sum is: {0}", sum);
    Console.WriteLine("Min is: {0}", min);
    Console.WriteLine("Max is: {0}", max);
    Console.ReadKey();
}
/**
Sum Min Max Functions
anchor-perform-functions-on-data
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    decimal sum = ws ["G2:G10"].Sum();
    decimal min = ws ["G2:G10"].Min();
    decimal max = ws ["G2:G10"].Max();

    Console.WriteLine("Sum is: {0}", sum);
    Console.WriteLine("Min is: {0}", min);
    Console.WriteLine("Max is: {0}", max);
    Console.ReadKey();
}

Dieser Code zeigt die folgende Ausgabe an:

Doc3 Output2 related to 5. Funktionen für Daten ausführen

Und so sieht die Excel-Datei "Beispiel.xlsx" aus:

Doc3 2 related to 5. Funktionen für Daten ausführen

6. Excel-Arbeitsblatt als DataTable lesen

Mit IronXL ist es sehr einfach, mit Excel-Arbeitsblättern als Datentabelle zu arbeiten.

DataTable dt=WorkSheet.ToDataTable();
DataTable dt=WorkSheet.ToDataTable();

Wenn wir die erste Zeile von ExcelSheet als DataTable ColumnName verwenden möchten, dann:

DataTable dt=WorkSheet.ToDataTable(True);
DataTable dt=WorkSheet.ToDataTable(True);

Daher wird der boolesche Parameter von "ToDataTable()setzt die erste Zeile als Spaltennamen Ihrer Datentabelle. Standardmäßig ist der WertFalse`.

/**
WorkSheet as DataTable
anchor-read-excel-worksheet-as-datatable
**/
using IronXL;
using System.Data; 
static void Main(string [] args)
{

    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
    foreach (DataRow row in dt.Rows) //access rows
    {
        for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
        {
            Console.Write(row [i]);
        }

    }
}
/**
WorkSheet as DataTable
anchor-read-excel-worksheet-as-datatable
**/
using IronXL;
using System.Data; 
static void Main(string [] args)
{

    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
    foreach (DataRow row in dt.Rows) //access rows
    {
        for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
        {
            Console.Write(row [i]);
        }

    }
}

Mit dem obigen Code kann auf jeden Zellwert von WorkSheet zugegriffen werden und er kann wie gewünscht verwendet werden.


7. Excel-Datei als DataSet lesen

IronXL bietet eine sehr einfache Funktion für die Verwendung einer kompletten Excel-Datei(arbeitsbuch) als ein DataSet.

DataSet ds = WorkBook.ToDataSet();
DataSet ds = WorkBook.ToDataSet();

WorkBook ist Ihre Excel-Datei, wie im folgenden Beispiel zu sehen ist:

In diesem Beispiel werden wir sehen, wie man eine Excel-Datei als DataSet verwendet.

/**
Excel File as DataSet
anchor-read-excel-file-as-dataset
**/
using IronXL;
using System.Data; 
static void Main(string [] args)
{           
    WorkBook wb = WorkBook.Load("sample.xlsx");
    DataSet ds = wb.ToDataSet(); //Parse WorkBook wb into DataSet
    foreach (DataTable dt in ds.Tables)
    {
        Console.WriteLine(dt.TableName);
    }
}
/**
Excel File as DataSet
anchor-read-excel-file-as-dataset
**/
using IronXL;
using System.Data; 
static void Main(string [] args)
{           
    WorkBook wb = WorkBook.Load("sample.xlsx");
    DataSet ds = wb.ToDataSet(); //Parse WorkBook wb into DataSet
    foreach (DataTable dt in ds.Tables)
    {
        Console.WriteLine(dt.TableName);
    }
}

Die Ausgabe des obigen Codes sieht wie folgt aus:

Doc10 Output2 related to 7. Excel-Datei als DataSet lesen

Die Excel-Datei "Beispiel.xlsx" sieht dann so aus:

Doc10 2 related to 7. Excel-Datei als DataSet lesen

Im obigen Beispiel sehen wir, dass wir eine Excel-Datei leicht in ein DataSet parsen und es mit jedem Arbeitsblatt der Excel-Datei als DataTable ausführen können. Erfahren Sie mehr darüber, wie Sieexcel als DataSet parsen hier mit Codebeispielen.

Sehen wir uns ein weiteres Beispiel an, wie man auf jeden Zellwert aller ExcelSheets zugreifen kann. Hier können wir auf jeden Zellwert eines jeden Arbeitsblatts der Excel-Datei zugreifen.

/**
WorkSheet Cell Values
anchor-read-excel-file-as-dataset
**/
using IronXL;
using System.Data; 
static void Main(string [] args)
{ 
WorkBook wb = WorkBook.Load("sample.xlsx");
DataSet ds = wb.ToDataSet();//behave complete Excel file as DataSet
foreach (DataTable dt in ds.Tables)//behave Excel WorkSheet as DataTable. 
{
    foreach (DataRow row in dt.Rows)//corresponding Sheet's Rows
    {
        for (int i = 0; i < dt.Columns.Count; i++)//Sheet columns of corresponding row
        {
            Console.Write(row [i]);
        }
    }
}
}
/**
WorkSheet Cell Values
anchor-read-excel-file-as-dataset
**/
using IronXL;
using System.Data; 
static void Main(string [] args)
{ 
WorkBook wb = WorkBook.Load("sample.xlsx");
DataSet ds = wb.ToDataSet();//behave complete Excel file as DataSet
foreach (DataTable dt in ds.Tables)//behave Excel WorkSheet as DataTable. 
{
    foreach (DataRow row in dt.Rows)//corresponding Sheet's Rows
    {
        for (int i = 0; i < dt.Columns.Count; i++)//Sheet columns of corresponding row
        {
            Console.Write(row [i]);
        }
    }
}
}

Anhand des obigen Beispiels ist es sehr bequem, auf jeden Zellwert jedes Arbeitsblatts einer Excel-Datei zuzugreifen.

Für weitere Informationen überExcel-Dateien ohne Interop lesen sehen Sie sich den Code hier an.


Tutorial Schnellzugriff

API-Referenz für IronXL

Lesen Sie mehr über die Funktionen, Klassen, Methodenfelder, Namespaces und Enums von IronXL in der Dokumentation.

API-Referenz für IronXL
Documentation related to Tutorial Schnellzugriff
Chaknith Bin
Software-Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.