Wie importiert man Excel-Dateien in C#35;

This article was translated from English: Does it need improvement?
Translated
View the article in English

Als Entwickler müssen wir oft Daten aus Excel-Dateien importieren und sie für unsere Anwendungen und das Datenmanagement verwenden. IronXL bietet uns eine einfache Möglichkeit, genau die Daten, die wir benötigen, direkt in ein C#-Projekt zu importieren und sie dann programmatisch zu bearbeiten, ohne dass viele Zeilen Code erforderlich sind.


Schritt 1

1. Datenimport mit der IronXL-Bibliothek

Importieren Sie Daten mit Hilfe der Funktionen der IronXL-Excel-Bibliothek, die wir in diesem Tutorial verwenden werden. Die Software ist für die Entwicklung frei verfügbar.

Installieren Sie in IhremC# Projekt über DLL herunterladen oder navigierenmit dem NuGet-Paket.

Install-Package IronXL.Excel

Anleitung zum Tutorial

2. Access WorkSheet für Projekt

Für unser heutiges Projekt werden wir Excel-Daten in unsere C#-Anwendung importieren, indem wir die in Schritt 1 installierte IronXL-Software verwenden.

In Schritt 2 laden wir unser Excel WorkBook in unser CSharp-Projekt, indem wir die Funktion `WorkBook.Load()funktion von IronXL. Wir übergeben den Pfad des Excel WorkBooks als String-Parameter in dieser Funktion, etwa so:

//load Excel file
WorkBook wb = WorkBook.Load("Path");
//load Excel file
WorkBook wb = WorkBook.Load("Path");
'load Excel file
Dim wb As WorkBook = WorkBook.Load("Path")
VB   C#

Die Excel-Datei mit dem angegebenen Pfad wird in wb geladen.

Als nächstes müssen wir auf ein bestimmtes Arbeitsblatt der Excel-Datei zugreifen, deren Daten in das Projekt importiert werden sollen. Zu diesem Zweck können wir die Funktion `GetWorkSheet()funktion von IronXL. Wir übergeben den Blattnamen als String-Parameter in dieser Funktion, um anzugeben, welches Blatt von WorkBook importiert werden soll.

//specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
//specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
'specify sheet name of Excel WorkBook
Dim ws As WorkSheet = wb.GetWorkSheet("SheetName")
VB   C#

Das WorkSheet wird als "ws" importiert, und "wb" ist das WorkBook, das wir im obigen Codebeispiel definiert haben.

Es gibt auch die folgenden alternativen Möglichkeiten, ein Excel-Arbeitsblatt in das Projekt zu importieren.

/**
Import WorkSheet 
anchor-access-worksheet-for-project
**/
//by sheet indexing
WorkBook.WorkSheets [SheetIndex];
//get default  WorkSheet
WorkBook.DefaultWorkSheet;
//get first WorkSheet
WorkBook.WorkSheets.First();
//for the first or default sheet:
WorkBook.WorkSheets.FirstOrDefault();
/**
Import WorkSheet 
anchor-access-worksheet-for-project
**/
//by sheet indexing
WorkBook.WorkSheets [SheetIndex];
//get default  WorkSheet
WorkBook.DefaultWorkSheet;
//get first WorkSheet
WorkBook.WorkSheets.First();
//for the first or default sheet:
WorkBook.WorkSheets.FirstOrDefault();
'''
'''Import WorkSheet 
'''anchor-access-worksheet-for-project
'''*
'by sheet indexing
WorkBook.WorkSheets (SheetIndex)
'get default  WorkSheet
WorkBook.DefaultWorkSheet
'get first WorkSheet
WorkBook.WorkSheets.First()
'for the first or default sheet:
WorkBook.WorkSheets.FirstOrDefault()
VB   C#

Jetzt können wir ganz einfach alle Arten von Daten aus den angegebenen Excel-Dateien importieren. Schauen wir uns alle möglichen Aspekte an, die wir für den Import von Excel-Daten in unser Projekt verwenden.


3. Importieren von Excel-Daten in C#;

Dies ist der grundlegende Aspekt des Imports von Daten aus Excel-Dateien in unser Projekt.

Zu diesem Zweck können wir ein Zelladressierungssystem verwenden, um anzugeben, welche Zelldaten wir importieren müssen. Sie gibt den Wert einer bestimmten Zelladresse in der Excel-Datei zurück.

WorkSheet ["Cell Address"];
WorkSheet ["Cell Address"];
WorkSheet ("Cell Address")
VB   C#

Wir können auch Zelldaten aus Excel-Dateien importieren, indem wir den Zeilen- und Spaltenindex verwenden. Diese Codezeile gibt den Wert des angegebenen Zeilen- und Spaltenindexes zurück.

WorkSheet.Rows [RowIndex].Columns [ColumnIndex]
WorkSheet.Rows [RowIndex].Columns [ColumnIndex]
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet.Rows [RowIndex].Columns [ColumnIndex]
VB   C#

Wenn wir importierte Zellwerte in Variablen einfügen wollen, können wir diesen Code verwenden.

/**
Import Data by Cell Address
anchor-import-excel-data-in-c-num
**/
//by cell addressing
string val = WorkSheet ["Cell Address"].ToString();
//by row and column indexing
string val = WorkSheet.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
/**
Import Data by Cell Address
anchor-import-excel-data-in-c-num
**/
//by cell addressing
string val = WorkSheet ["Cell Address"].ToString();
//by row and column indexing
string val = WorkSheet.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
'''
'''Import Data by Cell Address
'''anchor-import-excel-data-in-c-num
'''*
'by cell addressing
Dim val As String = WorkSheet ("Cell Address").ToString()
'by row and column indexing
Dim val As String = WorkSheet.Rows (RowIndex).Columns (ColumnIndex).Value.ToString()
VB   C#

In den obigen Beispielen beginnt der Zeilen- und Spaltenindex bei 0.


4. Excel-Daten eines bestimmten Bereichs importieren

Wenn Sie Daten in einem bestimmten Bereich aus einem Excel WorkBook importieren möchten, können Sie dies ganz einfach mit der Funktion "Bereich" tun. Um den Bereich zu definieren, müssen wir die Adresse der Startzelle und der Endzelle angeben. Auf diese Weise werden alle Zellwerte zurückgegeben, die in dem angegebenen Bereich liegen.

WorkSheet ["starting Cell Address : Ending Cell Address"];
WorkSheet ["starting Cell Address : Ending Cell Address"];
WorkSheet ("starting Cell Address : Ending Cell Address")
VB   C#

Weitere Informationen über die Arbeit mitbereich in Excel-Dateien sehen Sie sich die mitgelieferten Code-Beispiele an.

/**
Import Data by Range
anchor-import-excel-data-of-specific-range
**/
using IronXL;
static void Main(string [] args)
{
    //import Excel WorkBook
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //specify WorkSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //import data of specific cell
    string val = ws ["A4"].Value.ToString();
    Console.WriteLine("Import Value of A4 Cell address: {0}",val);
    Console.WriteLine("import Values in Range From B3 To B9 :\n");
    //import data in specific range
    foreach (var item in ws ["B3:B9"])
    {
        Console.WriteLine(item.Value.ToString());
    }

    Console.ReadKey();
}
/**
Import Data by Range
anchor-import-excel-data-of-specific-range
**/
using IronXL;
static void Main(string [] args)
{
    //import Excel WorkBook
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //specify WorkSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //import data of specific cell
    string val = ws ["A4"].Value.ToString();
    Console.WriteLine("Import Value of A4 Cell address: {0}",val);
    Console.WriteLine("import Values in Range From B3 To B9 :\n");
    //import data in specific range
    foreach (var item in ws ["B3:B9"])
    {
        Console.WriteLine(item.Value.ToString());
    }

    Console.ReadKey();
}
'''
'''Import Data by Range
'''anchor-import-excel-data-of-specific-range
'''*
Imports Microsoft.VisualBasic
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'import Excel WorkBook
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	'specify WorkSheet
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'import data of specific cell
	Dim val As String = ws ("A4").Value.ToString()
	Console.WriteLine("Import Value of A4 Cell address: {0}",val)
	Console.WriteLine("import Values in Range From B3 To B9 :" & vbLf)
	'import data in specific range
	For Each item In ws ("B3:B9")
		Console.WriteLine(item.Value.ToString())
	Next item

	Console.ReadKey()
End Sub
VB   C#

Der obige Code zeigt die folgende Ausgabe an:

1output related to 4. Excel-Daten eines bestimmten Bereichs importieren

Mit den Werten der Excel-Datei "sample.xlsx" als:

1excel related to 4. Excel-Daten eines bestimmten Bereichs importieren

5. Excel-Daten über Aggregatfunktionen importieren

Wir können auch Aggregatfunktionen auf Excel-Dateien anwenden und die aus diesen Aggregatfunktionen resultierenden Daten importieren. Im Folgenden finden Sie einige Beispiele für die verschiedenen Funktionen und deren Verwendung.

  • Summe()
 //to find the sum of specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Sum();
 //to find the sum of specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Sum();
'to find the sum of specific cell range 
WorkSheet ("Starting Cell Address : Ending Cell Address").Sum()
VB   C#
  • durchschnitt()`
 //to find the average of specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Avg()
 //to find the average of specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Avg()
'to find the average of specific cell range 
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["Starting Cell Address : Ending Cell Address"].Avg()
VB   C#
  • min()`
 //to find the Min In specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Min()
 //to find the Min In specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Min()
'to find the Min In specific cell range 
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["Starting Cell Address : Ending Cell Address"].Min()
VB   C#
  • Max()
 //to find the Max in specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Max()
 //to find the Max in specific cell range 
WorkSheet ["Starting Cell Address : Ending Cell Address"].Max()
'to find the Max in specific cell range 
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["Starting Cell Address : Ending Cell Address"].Max()
VB   C#

Lesen Sie mehr über die Arbeit mitaggregatfunktionen in Excel für C# und erfahren Sie mehr über das Abrufen von Daten mit verschiedenen Methoden.

Sehen wir uns ein Beispiel dafür an, wie man mit Hilfe dieser Funktionen Daten aus einer Excel-Datei importieren kann.

/**
Import Data by Aggregate Function
anchor-import-excel-data-by-aggregate-functions
**/
using IronXL;
static void Main(string [] args)
{
    //Import Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //Specify WorkSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //Import Excel file data by applying aggregate functions
    decimal Sum = ws ["D2:D9"].Sum();
    decimal Avg = ws ["D2:D9"].Avg();
    decimal Min = ws ["D2:D9"].Min();
    decimal Max = ws ["D2:D9"].Max();
    Console.WriteLine("Sum From D2 To D9: {0}", Sum);
    Console.WriteLine("Avg From D2 To D9: {0}", Avg);
    Console.WriteLine("Min From D2 To D9: {0}", Min);
    Console.WriteLine("Max From D2 To D9: {0}", Max);
    Console.ReadKey();
}
/**
Import Data by Aggregate Function
anchor-import-excel-data-by-aggregate-functions
**/
using IronXL;
static void Main(string [] args)
{
    //Import Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");
    //Specify WorkSheet
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    //Import Excel file data by applying aggregate functions
    decimal Sum = ws ["D2:D9"].Sum();
    decimal Avg = ws ["D2:D9"].Avg();
    decimal Min = ws ["D2:D9"].Min();
    decimal Max = ws ["D2:D9"].Max();
    Console.WriteLine("Sum From D2 To D9: {0}", Sum);
    Console.WriteLine("Avg From D2 To D9: {0}", Avg);
    Console.WriteLine("Min From D2 To D9: {0}", Min);
    Console.WriteLine("Max From D2 To D9: {0}", Max);
    Console.ReadKey();
}
'''
'''Import Data by Aggregate Function
'''anchor-import-excel-data-by-aggregate-functions
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'Import Excel file
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	'Specify WorkSheet
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	'Import Excel file data by applying aggregate functions
	Dim Sum As Decimal = ws ("D2:D9").Sum()
	Dim Avg As Decimal = ws ("D2:D9").Avg()
	Dim Min As Decimal = ws ("D2:D9").Min()
	Dim Max As Decimal = ws ("D2:D9").Max()
	Console.WriteLine("Sum From D2 To D9: {0}", Sum)
	Console.WriteLine("Avg From D2 To D9: {0}", Avg)
	Console.WriteLine("Min From D2 To D9: {0}", Min)
	Console.WriteLine("Max From D2 To D9: {0}", Max)
	Console.ReadKey()
End Sub
VB   C#

Der obige Code liefert diese Ausgabe:

2output related to 5. Excel-Daten über Aggregatfunktionen importieren

Und unsere Datei "sample.xlsx" wird diese Werte enthalten:

2excel related to 5. Excel-Daten über Aggregatfunktionen importieren

6. Vollständige Excel-Datei importieren

Wenn wir komplette Daten aus einer Excel-Datei in unser CSharp-Projekt importieren wollen, dann können wir zunächst unser geladenes WorkBook in ein DataSet parsen. Auf diese Weise werden vollständige Excel-Daten in das DataSet importiert, und Arbeitsblätter auf Excel-Dateien werden zu DataTables dieses DataSets. Hier ist sie in Aktion:

//import WorkBook into dataset
DataSet ds = WorkBook.ToDataSet();
//import WorkBook into dataset
DataSet ds = WorkBook.ToDataSet();
'import WorkBook into dataset
Dim ds As DataSet = WorkBook.ToDataSet()
VB   C#

Auf diese Weise wird unser angegebenes Arbeitsblatt in ein DataSet importiert, das wir entsprechend unseren Anforderungen verwenden können.

Oft wird die erste Spalte einer Excel-Datei als ColumnName verwendet. In diesem Fall müssen wir die erste Spalte als DataTable ColumnName erstellen. Zu diesem Zweck setzen wir den booleschen Parameter von "ToDataSet()die Funktion von IronXL ist wie folgt:

ToDataSet(true);
ToDataSet(true);
ToDataSet(True)
VB   C#

Dadurch wird die erste Spalte der Excel-Datei als DataTable ColumnName.

Sehen wir uns ein vollständiges Beispiel dafür an, wie man Excel-Daten in ein Dataset importiert und die erste Spalte eines Excel-Arbeitsblatts als DataTable ColumnName verwendet:

/**
Import to Dataset
anchor-import-complete-excel-file-data
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    DataSet ds = new DataSet();
    ds = wb.ToDataSet(true);
    Console.WriteLine("Excel file data imported to dataset successfully.");
    Console.ReadKey();
}
/**
Import to Dataset
anchor-import-complete-excel-file-data
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    DataSet ds = new DataSet();
    ds = wb.ToDataSet(true);
    Console.WriteLine("Excel file data imported to dataset successfully.");
    Console.ReadKey();
}
'''
'''Import to Dataset
'''anchor-import-complete-excel-file-data
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	Dim ds As New DataSet()
	ds = wb.ToDataSet(True)
	Console.WriteLine("Excel file data imported to dataset successfully.")
	Console.ReadKey()
End Sub
VB   C#

Arbeiten mitExcel-Datensatz und Datentabelle funktionen können kompliziert sein, aber wir haben weitere Beispiele für die Einbindung von Dateidaten in Ihr C#-Projekt.


Bibliothek Schnellzugriff

Erkunden Sie die IronXL-Referenz

Weitere Informationen zum Abrufen von Excel-Daten über Zellen, Bereiche, Datensätze und Datentabellen finden Sie in unserer vollständigen Dokumentation API-Referenz für IronXL.

Erkunden Sie die IronXL-Referenz
Documentation related to Bibliothek Schnellzugriff