C# Excel-Arbeitsblätter öffnen
Lernen Sie, wie Sie C# Excel-Arbeitsblattfunktionen verwenden, um mit Excel-Tabellenkalkulationen zu arbeiten und alle Dateitypen einschließlich (.xls
, .csv
, .tsv
und .xlsx
) zu öffnen. Ein Excel-Arbeitsblatt zu öffnen, seine Daten zu lesen und sie programmatisch zu bearbeiten, ist für viele, die Anwendungen entwickeln, unerlässlich. Hier ist eine Lösung für alle Entwickler, die eine Methode mit weniger Codezeilen und schnelleren Reaktionszeiten wünschen.
Wie öffnet man eine Excel-Datei in C#?
- C#-Bibliothek zum Öffnen von Excel-Dateien installieren
- Laden Sie die Excel-Datei in das WorkBook-Objekt
- Erkunden Sie viele Möglichkeiten, um WorkSheet aus der geöffneten Excel-Datei auszuwählen
- Zugriff auf Zellen-Daten über das ausgewählte WorkSheet-Objekt
- Daten aus einem Bereich von Zeilen und Spalten abrufen
How to Open Excel Worksheet in C#
Installieren Sie die Excel-Bibliothek, um Excel-Dateien zu lesen.
Laden Sie die bestehende Excel-Datei in ein
Workbook
-Objekt.Legen Sie das Standard-Excel-Arbeitsblatt fest.
Lesen Sie den Wert aus der Excel-Arbeitsmappe.
- Verarbeiten Sie den Wert entsprechend, und zeigen Sie ihn an.
Schritt 1
Zugriff auf die Excel C# Bibliothek
Zugreifen auf die Excel C# Bibliothek über DLL oder installieren Sie sie mit Ihrem bevorzugten NuGet-Manager. Sobald Sie auf die IronXL-Bibliothek zugegriffen und sie zu Ihrem Projekt hinzugefügt haben, können Sie alle unten aufgeführten Funktionen zum Öffnen von Excel-Arbeitsblättern in C# verwenden.
Install-Package IronXL.Excel
Anleitung zum Tutorial
2. Excel-Datei laden
Verwenden Sie die WorkBook.Load()
-Funktion von IronXL, um Excel-Dateien in das Projekt zu laden. Diese Funktion benötigt einen String-Parameter, der den Pfad der zu öffnenden Excel-Datei angibt. Siehe hier:
WorkBook wb = WorkBook.Load("Path");//Excel file path
WorkBook wb = WorkBook.Load("Path");//Excel file path
Dim wb As WorkBook = WorkBook.Load("Path") 'Excel file path
Die Excel-Datei des angegebenen Pfads wird in wb
geladen. Nun müssen wir das Excel-Arbeitsblatt angeben, das geöffnet werden soll.
3. Excel WorkSheet öffnen
Um ein bestimmtes WorkSheet
einer Excel-Datei zu öffnen, stellt IronXL die Funktion WorkBook.GetWorkSheet()
bereit. Auf diese Weise können wir das Arbeitsblatt einfach über seinen Namen öffnen:
WorkSheet ws = WorkBook.GetWorkSheet("SheetName");
WorkSheet ws = WorkBook.GetWorkSheet("SheetName");
Dim ws As WorkSheet = WorkBook.GetWorkSheet("SheetName")
Das angegebene WorkSheet
wird mit allen Daten in ws
geöffnet. Es gibt auch einige andere Möglichkeiten, ein bestimmtes WorkSheet
einer Excel-Datei zu öffnen:
/**
Open Excel Worksheet
anchor-open-excel-worksheet
**/
//by sheet index
WorkSheet ws = wb.WorkSheets [0];
//for the default
WorkSheet ws = wb.DefaultWorkSheet;
//for the first sheet:
WorkSheet ws = wb.WorkSheets.First();
//for the first or default sheet:
WorkSheet ws = wb.WorkSheets.FirstOrDefault();
/**
Open Excel Worksheet
anchor-open-excel-worksheet
**/
//by sheet index
WorkSheet ws = wb.WorkSheets [0];
//for the default
WorkSheet ws = wb.DefaultWorkSheet;
//for the first sheet:
WorkSheet ws = wb.WorkSheets.First();
//for the first or default sheet:
WorkSheet ws = wb.WorkSheets.FirstOrDefault();
'''
'''Open Excel Worksheet
'''anchor-open-excel-worksheet
'''*
'by sheet index
Dim ws As WorkSheet = wb.WorkSheets (0)
'for the default
Dim ws As WorkSheet = wb.DefaultWorkSheet
'for the first sheet:
Dim ws As WorkSheet = wb.WorkSheets.First()
'for the first or default sheet:
Dim ws As WorkSheet = wb.WorkSheets.FirstOrDefault()
Jetzt müssen wir nur noch Daten aus dem geöffneten Excel WorkSheet
abrufen.
4. Daten aus WorkSheet abrufen
Wir können Daten aus einem geöffneten Excel-WorkSheet
auf folgende Weise erhalten:
Erhalten Sie einen bestimmten Zellwert des Excel-
WorkSheet
.Erhalten Sie Daten in einem bestimmten Bereich.
Holen
Sie alle Daten aus demWorkSheet
.Anhand dieser Beispiele wollen wir uns nacheinander ansehen, wie man Daten auf verschiedene Weise abrufen kann:
4.1. Bestimmten Zellwert abrufen
Der erste Ansatz, um Daten aus einem Excel-WorkSheet
zu erhalten, besteht darin, die spezifischen Zellwerte zu erhalten. Sie kann wie folgt aufgerufen werden:
string val = ws ["Cell Address"].ToString();
string val = ws ["Cell Address"].ToString();
Dim val As String = ws ("Cell Address").ToString()
ws
ist das WorkSheet
der Excel-Datei, wie wir in den folgenden Beispielen sehen werden. Auf bestimmte Zellwerte kann auch durch Angabe von "Zeilenindex" und "Spaltenindex" zugegriffen werden
string val=ws.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
string val=ws.Rows [RowIndex].Columns [ColumnIndex].Value.ToString();
Dim val As String=ws.Rows (RowIndex).Columns (ColumnIndex).Value.ToString()
Sehen wir uns ein Beispiel an, wie wir eine Excel-Datei in unserem C#-Projekt öffnen und bestimmte Zellwerte auf beide Arten abrufen können:
/**
Get Cell Value
anchor-get-specific-cell-value
**/
using IronXL;
static void Main(string [] args)
{
//Load Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
//Open WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Get value By Cell Address
Int32 int_val= ws ["C6"].Int32Value;
//Get value by Row and Column Address
string str_val=ws.Rows [3].Columns [1].Value.ToString();
Console.WriteLine("Getting Value by Cell Address: {0}",int_val);
Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val);
Console.ReadKey();
}
/**
Get Cell Value
anchor-get-specific-cell-value
**/
using IronXL;
static void Main(string [] args)
{
//Load Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");
//Open WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//Get value By Cell Address
Int32 int_val= ws ["C6"].Int32Value;
//Get value by Row and Column Address
string str_val=ws.Rows [3].Columns [1].Value.ToString();
Console.WriteLine("Getting Value by Cell Address: {0}",int_val);
Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val);
Console.ReadKey();
}
'''
'''Get Cell Value
'''anchor-get-specific-cell-value
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
'Load Excel file
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
'Open WorkSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'Get value By Cell Address
Dim int_val As Int32= ws ("C6").Int32Value
'Get value by Row and Column Address
Dim str_val As String=ws.Rows (3).Columns (1).Value.ToString()
Console.WriteLine("Getting Value by Cell Address: {0}",int_val)
Console.WriteLine("Getting Value by Row and Column Indexes: {0}",str_val)
Console.ReadKey()
End Sub
Dieser Code zeigt die folgende Ausgabe an:
Wert der Excel-Datei sample.xlsx
in Zeile [3].Spalte [1]
und C6
-Zelle:
Die Zeilen- und Spaltenindizes beginnen bei 0
.
Öffnen Sie Excel-Arbeitsblätter
und rufen Sie die spezifischen Anrufdaten ab. Weitere Informationen zum Lesen von Excel-Daten in C# aus bereits geöffneten Excel-Arbeitsblättern finden Sie hier.
4.2. Daten aus einem bestimmten Bereich abrufen
Schauen wir uns nun an, wie man mithilfe von IronXL Daten aus einem bestimmten Bereich eines geöffneten Excel-WorkSheet
erhält.
IronXL bietet einen intelligenten Weg, um Daten in einem bestimmten Bereich zu erhalten. Wir geben einfach die Werte from
und to
an:
WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ["From Cell Address : To Cell Address"];
WorkSheet ("From Cell Address : To Cell Address")
Sehen wir uns ein Beispiel an, wie man den Bereich verwendet, um Daten aus einem offenen Excel-WorkSheet
zu erhalten:
/**
Get Data from Range
anchor-get-data-from-specific-range
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//specify the range
foreach (var cell in ws ["B2:B10"])
{
Console.WriteLine("value is: {0}", cell.Text);
}
Console.ReadKey();
}
/**
Get Data from Range
anchor-get-data-from-specific-range
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//specify the range
foreach (var cell in ws ["B2:B10"])
{
Console.WriteLine("value is: {0}", cell.Text);
}
Console.ReadKey();
}
'''
'''Get Data from Range
'''anchor-get-data-from-specific-range
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'specify the range
For Each cell In ws ("B2:B10")
Console.WriteLine("value is: {0}", cell.Text)
Next cell
Console.ReadKey()
End Sub
Der obige Code wird Daten von B2
bis B10
wie folgt abrufen:
Wir können die Werte der Excel-Datei sample.xlsx
von B2
bis B10
sehen:
4.3. Daten aus Zeile holen
Wir können auch einen Bereich für eine bestimmte Zeile beschreiben. Zum Beispiel:
WorkSheet ["A1:E1"]
WorkSheet ["A1:E1"]
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkSheet ["A1:E1"]
Dies wird alle Werte von A1
bis E1
anzeigen. Erfahren Sie mehr über C# Excel Ranges und wie Sie mit verschiedenen Zeilen- und Spaltenkennungen arbeiten.
4.4. Alle Daten aus WorkSheet abrufen
Auch das Abrufen aller Zelldaten aus dem geöffneten Excel-Arbeitsblatt ist mit IronXL einfach. Für diese Aufgabe müssen wir auf jeden Zellwert über Zeilen- und Spaltenindizes zugreifen. Sehen wir uns das folgende Beispiel an, in dem wir alle WorkSheet
-Zellen durchlaufen und auf deren Werte zugreifen.
In diesem Beispiel arbeiten im Grunde zwei Schleifen: Eine dient dazu, jede Zeile des Excel-WorkSheet
zu durchlaufen, und die andere, um jede Spalte einer bestimmten Zeile zu durchlaufen. Auf diese Weise kann auf jeden Zellwert leicht zugegriffen werden.
/**
Get All Data
anchor-get-all-data-from-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample2.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//access all rows of open Excel WorkSheet
for (int i = 0; i < ws.Rows.Count(); i++)
{
//access all columns of specific row
for (int j = 0; j < ws.Columns.Count(); j++)
{
//Access each cell for specified column
Console.WriteLine(ws.Rows [i].Columns [j].Value.ToString());
}
}
Console.ReadKey();
}
/**
Get All Data
anchor-get-all-data-from-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample2.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
//access all rows of open Excel WorkSheet
for (int i = 0; i < ws.Rows.Count(); i++)
{
//access all columns of specific row
for (int j = 0; j < ws.Columns.Count(); j++)
{
//Access each cell for specified column
Console.WriteLine(ws.Rows [i].Columns [j].Value.ToString());
}
}
Console.ReadKey();
}
'''
'''Get All Data
'''anchor-get-all-data-from-worksheet
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample2.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
'access all rows of open Excel WorkSheet
For i As Integer = 0 To ws.Rows.Count() - 1
'access all columns of specific row
For j As Integer = 0 To ws.Columns.Count() - 1
'Access each cell for specified column
Console.WriteLine(ws.Rows (i).Columns (j).Value.ToString())
Next j
Next i
Console.ReadKey()
End Sub
Die Ausgabe des obigen Codes wird jeden Zellwert des vollständigen geöffneten Excel-WorkSheet
anzeigen.
Tutorial Schnellzugriff
API-Referenzressource
Verwenden Sie die IronXL API-Referenz als Leitfaden für alle Funktionen und Klassen, die Sie in Ihren Projekten verwenden können, sowie für Namespaces, Methodenfelder, Enums und Feature Sets.
API-Referenzressource