C# Excel-Arbeitsblätter öffnen

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

Lernen Sie, wie Sie C#-Funktionen zum Öffnen von Excel-Arbeitsblättern verwenden, um mit Excel-Tabellen zu arbeiten und alle Dateitypen zu öffnen, einschließlich(.xls", "csv", "tsv" und "xlsx"). 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 ein Excel-Arbeitsblatt in C#;

  1. Installieren Sie die Excel-Bibliothek, um Excel-Dateien zu lesen.

  2. Laden Sie die vorhandene Excel-Datei in ein "Workbook"-Objekt.

  3. Legen Sie das Standard-Excel-Arbeitsblatt fest.

  4. Lesen Sie den Wert aus der Excel-Arbeitsmappe.

  5. Verarbeiten Sie den Wert entsprechend, und zeigen Sie ihn an.

    Schritt 1

1. Zugang Excel C# Bibliothek

Zugriff auf dieExcel C#-Bibliothek über DLL oder installieren Sie es mit Ihrem bevorzugtenNuGet-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 Funktion `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
VB   C#

Die Excel-Datei mit dem angegebenen Pfad wird in wb geladen. Nun müssen wir das Excel-Arbeitsblatt angeben, das geöffnet werden soll.


3. Excel WorkSheet öffnen

Um ein bestimmtes "Arbeitsblatt" einer Excel-Datei zu öffnen, bietet IronXL die Funktion "WorkBook.GetWorkSheet()funktion. 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")
VB   C#

Das angegebene WorkSheet wird in ws mit all seinen Daten geöffnet. Es gibt auch einige andere Möglichkeiten, ein bestimmtes Arbeitsblatt 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()
VB   C#

Jetzt müssen wir nur noch Daten aus dem geöffneten Excel-Arbeitsblatt abrufen.


4. Daten aus WorkSheet abrufen

Wir können Daten aus einem geöffneten Excel-Arbeitsblatt auf folgende Weise abrufen:

  1. Ermittelt einen bestimmten Zellwert von Excel WorkSheet.

  2. daten in einem bestimmten Bereich abrufen.

  3. holt alle Daten aus dem Arbeitsblatt.

    Anhand dieser Beispiele wollen wir uns nacheinander ansehen, wie man Daten auf verschiedene Weise abrufen kann:

4.1. Bestimmten Zellwert abrufen

Der erste Ansatz zum Abrufen von Daten aus einem Excel-Arbeitsblatt besteht darin, die spezifischen Zellwerte abzurufen. 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()
VB   C#

ws" ist das "Arbeitsblatt" 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()
VB   C#

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

Dieser Code zeigt die folgende Ausgabe an:

1output related to 4.1. Bestimmten Zellwert abrufen

Wert der Excel-Datei "Muster.xlsx" in "Zeile[3].Säule[1]und Zelle "C6":

1excel related to 4.1. Bestimmten Zellwert abrufen

Der Zeilen- und Spaltenindex beginnt bei "0".

Öffnen Sie Excel Arbeitsblätter und holen Sie sich die spezifischen Anrufdaten, und Sie können mehr darüber lesen, wie manexcel-Daten in C# lesen aus bereits geöffneten Excel-Arbeitsblättern.

4.2. Daten aus einem bestimmten Bereich abrufen

Sehen wir uns nun an, wie man mit IronXL Daten in einem bestimmten Bereich aus einem geöffneten Excel-Arbeitsblatt abrufen kann.

IronXL bietet einen intelligenten Weg, um Daten in einem bestimmten Bereich zu erhalten. Wir geben lediglich die Werte "von" bis "bis" an:

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

Sehen wir uns ein Beispiel dafür an, wie man mit einem Bereich Daten aus einem geöffneten Excel-Arbeitsblatt abrufen kann:

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

Der obige Code zieht Daten von "B2" bis "B10" wie folgt:

2output related to 4.2. Daten aus einem bestimmten Bereich abrufen

Wir können die Werte der Excel-Datei "sample.xlsx" sehen, von "B2" bis "B10":

2excel related to 4.2. Daten aus einem bestimmten Bereich abrufen

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

Damit werden alle Werte von "A1" bis "E1" angezeigt. Lesen Sie mehr überC# Excel-Bereiche und wie man mit verschiedenen Zeilen- und Spaltenbezeichnungen arbeitet.

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 Zellen des Arbeitsblatts durchlaufen und auf ihre Werte zugreifen wollen.

In diesem Beispiel arbeiten im Wesentlichen zwei Schleifen: eine zum Durchlaufen jeder Zeile des Excel-Arbeitsblatts und die andere zum Durchlaufen jeder Spalte einer bestimmten Zeile. 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
VB   C#

Die Ausgabe des obigen Codes zeigt jeden Zellwert des gesamten geöffneten Excel-Arbeitsblatts an.


Tutorial Schnellzugriff

Documentation related to 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