Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Wie man Excel-Dateien in C# importiert

Importieren von Excel-Dateien in C# mit IronXL , einer .NET-Bibliothek, die XLS-, XLSX- und CSV-Dateien ohne installiertes Microsoft Excel lesen kann. Verwenden Sie einfach WorkBook.Load("file.xlsx") , um Dateien zu öffnen und auf Zelldaten mit einer intuitiven Syntax wie sheet["A1"] zuzugreifen.

Microsoft Excel ist eine vielseitige Tabellenkalkulationssoftware, die bei der Datenorganisation, -präsentation und -analyse hilft. Die programmgesteuerte Arbeit mit Excel in C# kann jedoch eine Herausforderung darstellen, insbesondere beim Umgang mit unterschiedlichen Tabellenkalkulationsdateitypen oder wenn Microsoft Office nicht auf Ihrem Bereitstellungsserver installiert ist. Die IronXL-Softwarebibliothek bietet eine umfassende Lösung zum Importieren und Lesen von Excel-Dateien in C#-Anwendungen und unterstützt verschiedene Formate, darunter XLSX- , XLS- und CSV-Dateien .

Was ist IronXL und warum sollte ich es für den Excel-Import verwenden?

IronXL ist eine .NET Excel-Bibliothek, die Benutzerfreundlichkeit, Genauigkeit und Geschwindigkeit in den Vordergrund stellt. Es hilft Ihnen beim Importieren und Lesen von Excel-Dokumenten sowie beim effizienten Erstellen und Bearbeiten von Excel-Dateien mit blitzschneller Performance. Im Gegensatz zu herkömmlichen Ansätzen, die Microsoft Office Interop benötigen, funktioniert IronXL unabhängig und ohne Abhängigkeiten von MS Office Interop. Das bedeutet, dass Sie alle Funktionen zum Lesen von Excel-Dateien erhalten, ohne dass Excel installiert sein muss. Damit ist IronXL ein leistungsstarkes Werkzeug für Entwickler zum Importieren und Lesen von Excel-Dateien in C#-Anwendungen, egal ob Sie ASP.NET-Webanwendungen , Desktop-Anwendungen oder Cloud-basierte Lösungen entwickeln.

IronXL ist auf allen gängigen Plattformen wie Windows, Linux , macOS , Docker , Azure und AWS verfügbar. Es ist mit allen .NET Framework-Versionen kompatibel und unterstützt moderne .NET Core- und .NET 5+-Umgebungen. IronXL ist eine vielseitige Bibliothek, die in Konsolen-, Desktop- und Web-ASP.NET-Anwendungen sowie in Blazor-Anwendungen integriert werden kann. Es unterstützt verschiedene Arbeitsmappenformate wie XLS- und XLSX-Dateien, XSLT- und XLSM-Dateien, CSV und TSV und eignet sich daher ideal für Szenarien, in denen Sie zwischen Tabellenkalkulationsdateitypen konvertieren müssen.

Welche Schlüsselfunktionen machen IronXL für den Excel-Import unverzichtbar?

Wie importiere ich eine Excel-Arbeitsmappe in C#?

Was benötige ich vor dem Start des Excel-Imports?

Um IronXL in C# zum Lesen von Excel-Dateien zu verwenden, stellen Sie sicher, dass die folgenden Komponenten auf Ihrem Computer installiert sind:

  1. Visual Studio – Dies ist die offizielle IDE für die Entwicklung von C# .NET-Anwendungen. Visual Studio bietet hervorragende IntelliSense Unterstützung und Debugging-Tools, die die Arbeit mit Excel-Dateien erleichtern. Sie können Visual Studio von der Microsoft-Website herunterladen und installieren. Die Community Edition ist kostenlos und für die meisten Entwicklungsanforderungen ausreichend.

  2. IronXL - Dies ist die Bibliothek, die Ihnen hilft, in C# mit Excel-Tabellen unter einem bestimmten Pfad zu arbeiten. Es muss vor der Verwendung in Ihrem C#-Programm installiert werden. IronXL kann einfach von der NuGet-Website heruntergeladen oder direkt über die Schnittstelle "NuGet-Pakete verwalten" in den Visual Studio-Tools installiert werden. Alternativ können Sie die .NET Excel DLL- Datei auch direkt herunterladen, falls Sie eine manuelle Installation bevorzugen.

Für den Einsatz in Produktionsumgebungen ist die Anwendung eines Lizenzschlüssels erforderlich, um Wasserzeichen zu entfernen und die volle Funktionalität zu aktivieren. Entwicklung und Tests können mit der Testversion durchgeführt werden.

Welche Namensräume sollte ich meinem Code hinzufügen?

Sobald Visual Studio und IronXL installiert sind, müssen Sie die IronXL-Assembly referenzieren, um IronXL in Ihrem Quellcode zu verwenden. Fügen Sie die folgende Codezeile am Anfang der Datei im neuen Projekt hinzu, in dem IronXL-Funktionen verwendet werden sollen:

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

Dieser einzelne Namespace-Import ermöglicht den Zugriff auf alle Kernfunktionen, die für Excel-Operationen benötigt werden. Wenn Sie mit speziellen Excel-Funktionen wie Diagrammen oder bedingter Formatierung arbeiten, müssen Sie möglicherweise zusätzliche Namensräume aus der IronXL-Bibliothek importieren.

Wie lade und öffne ich eine Excel-Datei?

Microsoft Excel-Tabellen werden auch als Excel-Arbeitsbücher bezeichnet. Jede Arbeitsmappe enthält mehrere Arbeitsblätter (auch Blätter genannt), und ein einzelnes Arbeitsblatt enthält tabellarische Zellen, die in Zeilen und Spalten mit ihren jeweiligen Werten organisiert sind. Um eine Excel-Datei zu öffnen und zu lesen , laden Sie sie mit der WorkBook Klasse und Load Methode aus der IronXL-Bibliothek. Der Code sieht wie folgt aus:

// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from a stream
using (var stream = File.OpenRead("test.xlsx"))
{
    WorkBook streamWorkbook = WorkBook.Load(stream);
}

// Or load CSV files with custom delimiters
WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ",");
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from a stream
using (var stream = File.OpenRead("test.xlsx"))
{
    WorkBook streamWorkbook = WorkBook.Load(stream);
}

// Or load CSV files with custom delimiters
WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ",");
$vbLabelText   $csharpLabel

Dies öffnet die Excel-Datei in der Referenzvariable der Arbeitsbuchinstanz. Da eine Arbeitsmappe mehrere Arbeitsblätter enthalten kann, können Sie auf verschiedene Weise darauf zugreifen. Der folgende Code öffnet das erste Arbeitsblatt in der Blatt-Instanzvariablen:

// Get the first worksheet
WorkSheet sheet = workbook.WorkSheets.First();

// Or access by worksheet name
WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1");

// Or by index (zero-based)
WorkSheet indexedSheet = workbook.WorkSheets[0];
// Get the first worksheet
WorkSheet sheet = workbook.WorkSheets.First();

// Or access by worksheet name
WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1");

// Or by index (zero-based)
WorkSheet indexedSheet = workbook.WorkSheets[0];
$vbLabelText   $csharpLabel

Dies öffnet das erste Blatt in der Excel-Datei und nun können Excel-Daten von diesem Blatt gelesen und auf dieses geschrieben werden. Für komplexere Szenarien müssen Sie möglicherweise mehrere Arbeitsblätter verwalten oder neue Tabellenkalkulationen programmatisch erstellen .

Geöffnete Excel-Datei

Eine Excel-Tabelle mit Mitarbeiterdaten, Spalten für Name, Berufsbezeichnung und Gehalt, enthält fünf Datensätze mit unterschiedlichen Berufsbezeichnungen und Gehältern. Beispiel einer Excel-Datei mit Mitarbeiterinformationen, die mit C# importiert werden soll. Die Daten umfassen Namen, Berufsbezeichnungen (Manager, Direktor, Angestellter, Präsident) und die entsprechenden Gehaltswerte.

Wie kann ich nach dem Import bestimmte Zellwerte auslesen?

Sobald die Excel-Datei importiert ist, können die Daten gelesen werden. Das Lesen von Excel-Datei-Daten in C# mit IronXL ist sehr einfach und leicht. Sie können Excel-Zellwerte auslesen, indem Sie einfach die Zellbezugsnummer in der üblichen Excel-Notation angeben (z. B. "A1", "B2" usw.). Die Bibliothek bietet verschiedene Möglichkeiten, auf Zellwerte zuzugreifen, abhängig vom erwarteten Datentyp.

Der folgende Code ruft den Wert einer Zelle mit der Referenznummer "C2" ab:

// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);

// You can also access different data types
string textValue = sheet["A2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
double doubleValue = sheet["C2"].DoubleValue;
DateTime dateValue = sheet["D2"].DateTimeValue;
bool boolValue = sheet["E2"].BoolValue;

// Check if cell is empty
bool isEmpty = sheet["F2"].IsEmpty;
// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;

// Display the value
Console.WriteLine(cellValue);

// You can also access different data types
string textValue = sheet["A2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
double doubleValue = sheet["C2"].DoubleValue;
DateTime dateValue = sheet["D2"].DateTimeValue;
bool boolValue = sheet["E2"].BoolValue;

// Check if cell is empty
bool isEmpty = sheet["F2"].IsEmpty;
$vbLabelText   $csharpLabel

Das Ergebnis ist wie folgt:

Das Debugkonsolenfenster von Microsoft Visual Studio zeigt die Ausgabe eines Lesevorgangs einer Excel-Datei an, einschließlich des Dateipfads und einer Abschlussmeldung. Die Ausgabe der Debug-Konsole nach erfolgreichem Einlesen einer Excel-Datei in C#. Das Programm wurde vollständig ausgeführt und wartet auf eine Benutzereingabe, um beendet zu werden.

Lesen wir nun Daten aus einem Zellbereich der geöffneten Excel-Datei ein. IronXL erleichtert die Arbeit mit Zellbereichen mithilfe der gewohnten Excel-Notation. Der Code sieht wie folgt aus:

// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// You can also work with entire rows or columns
var row = sheet.GetRow(2); // Get row 3 (0-indexed)
foreach (var cell in row)
{
    Console.WriteLine($"Row cell value: {cell.Value}");
}

// Or get a column
var column = sheet.GetColumn(0); // Get column A
foreach (var cell in column)
{
    Console.WriteLine($"Column A value: {cell.Value}");
}
// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// You can also work with entire rows or columns
var row = sheet.GetRow(2); // Get row 3 (0-indexed)
foreach (var cell in row)
{
    Console.WriteLine($"Row cell value: {cell.Value}");
}

// Or get a column
var column = sheet.GetColumn(0); // Get column A
foreach (var cell in column)
{
    Console.WriteLine($"Column A value: {cell.Value}");
}
$vbLabelText   $csharpLabel

Der Code ist sehr einfach, sauber und klar. Der Bereich der Zellen kann mit einfacher Syntax wie in einer foreach-Schleife referenziert werden: sheet["A2:A6"] und jede Zelle kann durchlaufen werden, um ihren Wert zu erhalten. Hier sehen Sie die Namen in Spalte A von Zeile 2 bis Zeile 6 in der Konsolenausgabe:

Die Microsoft Visual Studio-Debugkonsole zeigt die Ausgabe der Excel-Zellen A2 bis A6 mit den Namen John, Sara, Peter, Mathew und Katherine an. Konsolenausgabe, die das erfolgreiche Einlesen eines Excel-Zellenbereichs (A2:A6) mit Namen mithilfe von C# demonstriert.

Weitere Details zum Lesen und Schreiben von Zellwerten finden Sie in diesem Tutorial zum Lesen von Excel-Dateien in C# (Beispiel) . Sie können auch erweiterte Funktionen wie das Anwenden von Formeln oder das Arbeiten mit benannten Bereichen erkunden.

Wie importiere ich ganze Arbeitsblätter auf einmal?

IronXL kann verwendet werden, um Excel-Blätter auf einmal mit Zeilen- und Spaltenindizes zu lesen. Dies ist besonders nützlich, wenn Sie alle Daten in einem Arbeitsblatt verarbeiten müssen oder wenn Sie Excel in andere Formate wie CSV oder JSON konvertieren . Die folgenden IronXL-Codebeispiele helfen Ihnen dabei, die gesamten Daten der Excel-Datei im gleichen Format in der Konsolenausgabe anzuzeigen:

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}

// Alternative method using LINQ for more efficient processing
var allData = sheet.Rows.SelectMany(row => 
    row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList();
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++)
{
    // Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++)
    {
        // Get the values
        string val = sheet.Rows[i].Columns[j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}

// Alternative method using LINQ for more efficient processing
var allData = sheet.Rows.SelectMany(row => 
    row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList();
$vbLabelText   $csharpLabel

Bei größeren Excel-Dateien empfiehlt sich die Verwendung von DataTable- oder DataSet- Objekten, um eine bessere Leistung und einfachere Datenmanipulation zu gewährleisten:

// Convert worksheet to DataTable for easier manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers

// Process data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
// Convert worksheet to DataTable for easier manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers

// Process data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
$vbLabelText   $csharpLabel

Ausgabedatei

Die Microsoft Visual Studio-Debugkonsole zeigt eine Mitarbeiterdatentabelle mit Spalten für Name, Bezeichnung und Gehalt an; es werden 5 Mitarbeiterdatensätze angezeigt, die aus einer Excel-Datei gelesen wurden. Die Konsolenausgabe zeigt die aus der Excel-Datei importierten Mitarbeiterdaten korrekt an, wobei Namen, Berufsbezeichnungen und Gehaltsinformationen in der richtigen Formatierung angezeigt werden.

.

Was sind die nächsten Schritte nach dem Import von Excel-Dateien?

Dieser Artikel demonstrierte, wie man eine Excel-Datei in C# importiert und liest, ohne dass Microsoft Excel installiert sein muss. Es wurden verschiedene Methoden zum Auslesen von Daten aus einer Excel-Tabelle behandelt, von einzelnen Zellen bis hin zu ganzen Tabellenblättern. IronXL hilft Ihnen außerdem dabei , Excel-Dateien in C# zu erstellen , ohne dass eine Excel-Installation erforderlich ist.

Nach dem erfolgreichen Import der Excel-Daten möchten Sie vielleicht weitere Funktionen erkunden:

IronXL bietet eine All-in-One-Lösung für alle Aufgaben im Zusammenhang mit Microsoft Excel-Dokumenten, die programmgesteuert implementiert werden sollen. Sie können Formelberechnungen durchführen, Zeichenketten oder Zahlen sortieren, kürzen und anhängen, suchen und ersetzen, Zellen zusammenführen und trennen , Dateien speichern und vieles mehr. Sie können Zellwerte bearbeiten und Zelldatenformate festlegen sowie Tabellendaten validieren. Es unterstützt außerdem CSV-Dateien und ermöglicht Ihnen die nahtlose Arbeit mit Excel-Daten.

Für Unternehmensanwendungen sollten Sie die Bereitstellungsoptionen für verschiedene Plattformen wie Docker-Container , Azure Functions und AWS Lambda in Betracht ziehen.

IronXL kann kostenlos getestet werden und ist mit dem Lite-Paket bereits ab $799 für die kommerzielle Nutzung lizenzierbar . Die Bibliothek bietet hervorragende Dokumentation , Tutorials und Codebeispiele , die Ihnen den Einstieg in die Excel-Dateiverarbeitung in Ihren C#-Anwendungen erleichtern.

Häufig gestellte Fragen

Wie kann ich eine Excel-Datei in C# importieren und lesen, ohne Interop zu verwenden?

Sie können Excel-Dateien in C# mit der IronXL-Bibliothek importieren und lesen. Laden Sie die Excel-Datei einfach mit WorkBook.Load("file.xlsx"), um auf die Daten zuzugreifen und sie zu verarbeiten, ohne dass Microsoft Excel installiert sein muss.

Mit welchen Plattformen ist die IronXL-Bibliothek kompatibel?

IronXL ist mit allen .NET-Frameworks kompatibel und kann auf mehreren Plattformen verwendet werden, einschließlich Windows, Linux, MacOS, Docker, Azure und AWS.

Kann ich IronXL verwenden, um Excel-Dateien zu bearbeiten, ohne dass Microsoft Excel installiert ist?

Ja, IronXL ermöglicht es Ihnen, Excel-Dateien programmatisch in C# zu erstellen und zu bearbeiten, ohne dass Microsoft Excel auf Ihrem System installiert sein muss.

Welche Excel-Formate kann IronXL verarbeiten?

IronXL unterstützt verschiedene Excel-Dateiformate wie XLS, XLSX, CSV, TSV und viele mehr, was einen einfachen Import und die Manipulation von Daten ermöglicht.

Was sind die Voraussetzungen für die Verwendung von IronXL in einem C#-Projekt?

Um IronXL zu verwenden, stellen Sie sicher, dass Visual Studio installiert ist. Sie können IronXL über den NuGet-Paketmanager zu Ihrem Projekt hinzufügen oder das .NET Excel-DLL herunterladen und referenzieren.

Wie kann ich ein Excel-Arbeitsbuch mit IronXL in C# laden?

Um ein Excel-Arbeitsbuch in C# zu laden, verwenden Sie IronXLs WorkBook.Load("path/to/file.xlsx")-Methode, die es Ihnen ermöglicht, das Arbeitsbuch zu öffnen und zu bearbeiten.

Ist es möglich, Excel-Formeln mit IronXL zu verarbeiten?

Ja, IronXL kann Excel-Formeln nahtlos verarbeiten und neu berechnen, wenn ein Arbeitsblatt bearbeitet wird, um die Genauigkeit der Datenberechnungen sicherzustellen.

Wie lese ich Daten aus einer bestimmten Zelle mit IronXL?

Um Daten aus einer bestimmten Zelle zu lesen, verwenden Sie IronXL-Syntax wie sheet["B2"].StringValue, um den Wert aus Zelle B2 zu erhalten.

Kann ich über einen Bereich von Zellen in einem Excel-Blatt mit IronXL iterieren?

Ja, Sie können über einen Bereich von Zellen iterieren, indem Sie IronXL mit einer Syntax wie foreach (var cell in sheet["A1:C3"]) verwenden, um jede Zelle einzeln zu verarbeiten.

Wie kann IronXL in ASP.NET-Anwendungen integriert werden?

IronXL kann leicht in ASP.NET-Anwendungen integriert werden, indem Sie die Bibliothek über NuGet hinzufügen und in Ihrem Projekt referenzieren, um die Manipulation von Excel-Dateien in Webanwendungen zu ermöglichen.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen