Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Wie man Excel-Dateien in C# öffnet

IronXL ermöglicht es C#-Entwicklern, Excel-Dateien zu öffnen, zu lesen und zu bearbeiten, ohne dass Microsoft Office installiert werden muss. Laden Sie Arbeitsmappen einfach mit WorkBook.Load() , greifen Sie auf Arbeitsblätter zu und lesen Sie Zellwerte mit einer intuitiven Syntax wie sheet["A1"] aus.

Dieses Tutorial zeigt, wie man mit IronXL Excel-Dateien in C#-Projekten öffnet und liest und bietet Nachwuchsentwicklern umfassende Beispiele und Best Practices für die Arbeit mit Excel-Daten .

Was ist die IronXL Excel-Bibliothek?

IronXL ist eine .NET-Bibliothek, die Benutzerfreundlichkeit, Genauigkeit und Geschwindigkeit in den Vordergrund stellt. Es hilft Ihnen, Excel-Dateien effizient zu öffnen, zu lesen, zu erstellen und zu bearbeiten , ohne dass MS Office Interop erforderlich ist. Dadurch ist es eine praktische Wahl für Entwickler, die mit Excel in C# ohne Interop arbeiten möchten.

IronXL ist kompatibel mit allen .NET Frameworks sowie mit Linux , macOS , Docker , Azure und AWS . Sie können damit Konsolen-, Web- und Desktop-Anwendungen wie Blazor und .NET MAUI für moderne Web-Apps erstellen. Es unterstützt verschiedene Arbeitsmappenformate wie XLS- und XLSX-Dateien, XSLT- und XLSM-Dateien, CSV und TSV.

Was sind die wichtigsten Merkmale von IronXL?

Wie öffnet man eine Excel-Datei in C#?

Was benötige ich vor dem Start?

Um IronXL in C#-Anwendungen zu verwenden, installieren Sie die folgenden Komponenten auf Ihrem lokalen Computer:

  1. Visual Studio – Die offizielle IDE für die Entwicklung von C# .NET-Anwendungen. Sie können Visual Studio von der Microsoft-Website herunterladen und installieren. Alternativ können Sie auch JetBrains ReSharper & Rider verwenden. Weitere Hinweise zur Einrichtung finden Sie in der Übersicht "Erste Schritte" .
  2. IronXL - Die Excel-Bibliothek, die die Arbeit mit Excel-Tabellen in C# erleichtert. Es muss in Ihrer C#-Anwendung installiert werden, bevor Sie es verwenden. Sie können es von der NuGet-Website oder über die Verwaltung von NuGet-Paketen in Visual Studio herunterladen. Sie können auch die .NET Excel DLL-Datei direkt herunterladen. Informationen zur Lizenzimplementierung finden Sie unter Verwendung von Lizenzschlüsseln .

Welche Namensräume soll ich importieren?

Sobald Visual Studio und IronXL installiert sind, fügen Sie die notwendigen IronXL-Namespace durch Hinzufügen der folgenden Zeile am Anfang Ihrer C#-Datei ein:

// Add reference to the IronXL library
using IronXL;
// Add reference to the IronXL library
using IronXL;
$vbLabelText   $csharpLabel

Für die Arbeit mit bestimmten Excel-Formaten oder erweiterten Funktionen benötigen Sie möglicherweise auch:

using IronXL.Formatting;  // For cell styling
using IronXL.Drawing;     // For images and charts
using System.Data;        // For DataSet/DataTable operations
using IronXL.Formatting;  // For cell styling
using IronXL.Drawing;     // For images and charts
using System.Data;        // For DataSet/DataTable operations
$vbLabelText   $csharpLabel

Wie lade ich eine bestehende Excel-Datei?

Excel-Dateien, auch bekannt als Arbeitsmappen, bestehen aus mehreren Arbeitsblättern, die jeweils Zellwerte enthalten. Um eine Excel-Datei zu öffnen und zu lesen , laden Sie sie mit der Load Methode der WorkBook Klasse. Die LoadSpreadsheets- Funktion unterstützt verschiedene Formate.

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

// You can also load from streams for web applications
// using (var stream = File.OpenRead("test.xlsx"))
// {
//     WorkBook workbook = WorkBook.Load(stream);
// }
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");

// You can also load from streams for web applications
// using (var stream = File.OpenRead("test.xlsx"))
// {
//     WorkBook workbook = WorkBook.Load(stream);
// }
$vbLabelText   $csharpLabel

Dies initialisiert die Arbeitsmappe als WorkBook-Instanz. Um ein bestimmtes WorkSheet zu öffnen, rufen Sie es aus der Sammlung WorkSheets ab. Der Leitfaden "Arbeitsblatt verwalten" enthält weitere Details zu den Vorgängen in Arbeitsblättern:

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

// Alternative ways to access worksheets
WorkSheet sheetByIndex = workbook.WorkSheets[0];  // By index
WorkSheet sheetByName = workbook.GetWorkSheet("Sheet1");  // By name
// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();

// Alternative ways to access worksheets
WorkSheet sheetByIndex = workbook.WorkSheets[0];  // By index
WorkSheet sheetByName = workbook.GetWorkSheet("Sheet1");  // By name
$vbLabelText   $csharpLabel

Damit wird das erste Blatt in der Excel-Datei aufgerufen, bereit zum Lesen und Schreiben.

! Excel-Tabelle mit Mitarbeiterdaten, Spalten für Name, Position und Gehalt für 5 Mitarbeiter, mit formatierten Überschriften und Zellrahmen Excel-Datei

Wie lese ich Daten aus Excel-Zellen aus?

Sobald die Excel-Datei geöffnet ist, können die Daten gelesen werden. Daten aus Excel-Dateien in C# mit IronXL zu lesen, ist unkompliziert. Sie können Zellwerte lesen, indem Sie die Zellreferenz mithilfe der Funktion "Bereich auswählen" angeben.

Der folgende Code ruft den Wert einer Zelle ab:

// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;

// You can also retrieve values in different formats
string textValue = sheet["C2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
DateTime dateValue = sheet["C2"].DateTimeValue;
bool boolValue = sheet["C2"].BoolValue;

// Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}");

// Check if cell is empty before reading
if (!sheet["C2"].IsEmpty)
{
    Console.WriteLine($"Cell value: {sheet["C2"].Value}");
}
// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;

// You can also retrieve values in different formats
string textValue = sheet["C2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
DateTime dateValue = sheet["C2"].DateTimeValue;
bool boolValue = sheet["C2"].BoolValue;

// Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}");

// Check if cell is empty before reading
if (!sheet["C2"].IsEmpty)
{
    Console.WriteLine($"Cell value: {sheet["C2"].Value}");
}
$vbLabelText   $csharpLabel

Das Ergebnis ist wie folgt:

Das Debug-Konsolenfenster von Microsoft Visual Studio zeigt die erfolgreiche Extraktion des Werts "100000" aus der Excel-Zelle C2 mit kontextbezogener Ausgabemeldung an . Excel lesen

Um Daten aus einem Zellbereich zu lesen, verwenden Sie eine Schleife, um den angegebenen Bereich zu durchlaufen. Das Beispiel "Excel-Bereich auswählen" liefert weitere Muster:

// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// Read an entire column
foreach (var cell in sheet.GetColumn(0))  // Column A
{
    if (!cell.IsEmpty)
    {
        Console.WriteLine($"Column A value: {cell.Text}");
    }
}

// Read an entire row
foreach (var cell in sheet.GetRow(1))  // Row 2
{
    Console.WriteLine($"Row 2 value: {cell.Text}");
}
// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// Read an entire column
foreach (var cell in sheet.GetColumn(0))  // Column A
{
    if (!cell.IsEmpty)
    {
        Console.WriteLine($"Column A value: {cell.Text}");
    }
}

// Read an entire row
foreach (var cell in sheet.GetRow(1))  // Row 2
{
    Console.WriteLine($"Row 2 value: {cell.Text}");
}
$vbLabelText   $csharpLabel

Jeder Wert im Zellbereich A2:A6 wird aufgerufen und in die Konsole ausgegeben.

Die Microsoft Visual Studio-Debugkonsole mit Syntaxhervorhebung zeigt die Ausgabe des gelesenen Excel-Bereichs A2:A6 mit den Mitarbeiternamen John, Sara, Peter, Method und Katherine. Bereich von Zellen lesen

Für detailliertere Lese- und Schreibbeispiele konsultieren Sie bitte das Excel-Lese-Tutorial in C# . Sie können Excel-Daten auch in DataTables konvertieren, um sie einfacher bearbeiten zu können:

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

// Access data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    Console.WriteLine($"Employee: {row["Name"]}, Salary: {row["Salary"]}");
}
// Convert worksheet to DataTable for easier data manipulation
DataTable dataTable = sheet.ToDataTable(true);  // true = first row contains headers

// Access data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
    Console.WriteLine($"Employee: {row["Name"]}, Salary: {row["Salary"]}");
}
$vbLabelText   $csharpLabel

Wie kann ich eine neue Excel-Datei erstellen?

IronXL ermöglicht außerdem das Erstellen neuer Arbeitsmappen zum Speichern und Abrufen von Daten. Der Leitfaden "Tabellenkalkulationen erstellen" enthält umfassende Beispiele.

Sie können eine neue Excel-Datei mit einer einzigen Codezeile erstellen:

// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);

// Alternative: Create with XLS format for compatibility
WorkBook xlsWorkBook = new WorkBook(ExcelFileFormat.XLS);

// Set workbook metadata
workBook.Metadata.Title = "Employee Data";
workBook.Metadata.Author = "Your Name";
workBook.Metadata.Keywords = "employees, salary, data";
// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);

// Alternative: Create with XLS format for compatibility
WorkBook xlsWorkBook = new WorkBook(ExcelFileFormat.XLS);

// Set workbook metadata
workBook.Metadata.Title = "Employee Data";
workBook.Metadata.Author = "Your Name";
workBook.Metadata.Keywords = "employees, salary, data";
$vbLabelText   $csharpLabel

Erstellen Sie ein Arbeitsblatt und fügen Sie Daten hinzu. Weitere Informationen zu fortgeschrittenen Erstellungsmustern finden Sie unter Erstellen einer neuen Excel-Datei .

Wie füge ich Arbeitsblätter zu einer Arbeitsmappe hinzu?

// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");

// Create multiple worksheets at once
WorkSheet sheet2 = workBook.CreateWorkSheet("PopulationData");
WorkSheet sheet3 = workBook.CreateWorkSheet("Summary");

// Copy an existing worksheet
WorkSheet copiedSheet = workSheet.CopySheet("GDPByCountryCopy");
// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");

// Create multiple worksheets at once
WorkSheet sheet2 = workBook.CreateWorkSheet("PopulationData");
WorkSheet sheet3 = workBook.CreateWorkSheet("Summary");

// Copy an existing worksheet
WorkSheet copiedSheet = workSheet.CopySheet("GDPByCountryCopy");
$vbLabelText   $csharpLabel

Dieser Code fügt der Arbeitsmappe ein Arbeitsblatt namens "GDPByCountry" hinzu, das Ihnen ermöglicht, Zellwerte hinzuzufügen. Erfahren Sie mehr über das Verwalten und Kopieren von Arbeitsblättern .

Für eine bestimmte Zelle setzen Sie den Wert mit diesem Code:

// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";

// Add different types of data
workSheet["A2"].Value = 12345;  // Integer
workSheet["A3"].Value = 99.99m;  // Decimal
workSheet["A4"].Value = DateTime.Now;  // Date
workSheet["A5"].Value = true;  // Boolean

// Add formulas
workSheet["B1"].Formula = "=SUM(A2:A3)";

// Set multiple cells at once using a range
workSheet["C1:C5"].Value = "Bulk Value";

// Save the workbook
workBook.SaveAs("output.xlsx");
// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";

// Add different types of data
workSheet["A2"].Value = 12345;  // Integer
workSheet["A3"].Value = 99.99m;  // Decimal
workSheet["A4"].Value = DateTime.Now;  // Date
workSheet["A5"].Value = true;  // Boolean

// Add formulas
workSheet["B1"].Formula = "=SUM(A2:A3)";

// Set multiple cells at once using a range
workSheet["C1:C5"].Value = "Bulk Value";

// Save the workbook
workBook.SaveAs("output.xlsx");
$vbLabelText   $csharpLabel

Das endgültige Ergebnis ist:

! Excel-Tabelle, in der Zelle A1 mit dem programmgesteuert per C# hinzugefügten Text "Beispiel" gefüllt ist; das Tabellenblatt "GDPByCountry" ist sichtbar und die Zelle ist hervorgehoben, um den hinzugefügten Wert anzuzeigen. Wert zur Zelle hinzufügen

Arbeiten mit verschiedenen Excel-Formaten

IronXL unterstützt mehrere Excel-Formate. So gehen Sie mit verschiedenen Dateitypen um:

// Convert between formats
WorkBook workbook = WorkBook.Load("data.csv");
workbook.SaveAs("data.xlsx");  // Convert CSV to XLSX

// Export to different formats
workbook.SaveAsCsv("output.csv", ";");  // CSV with semicolon delimiter
workbook.SaveAsJson("output.json");     // Export as JSON
workbook.SaveAsXml("output.xml");       // Export as XML
// Convert between formats
WorkBook workbook = WorkBook.Load("data.csv");
workbook.SaveAs("data.xlsx");  // Convert CSV to XLSX

// Export to different formats
workbook.SaveAsCsv("output.csv", ";");  // CSV with semicolon delimiter
workbook.SaveAsJson("output.json");     // Export as JSON
workbook.SaveAsXml("output.xml");       // Export as XML
$vbLabelText   $csharpLabel

Erfahren Sie mehr über die Konvertierung von Tabellenkalkulationsdateitypen und die Konvertierung von XLSX in CSV, JSON, XML .

Fehlerbehandlung und bewährte Praktiken

Bei der Arbeit mit Excel-Dateien ist eine angemessene Fehlerbehandlung zu implementieren:

try
{
    WorkBook workbook = WorkBook.Load("test.xlsx");
    WorkSheet sheet = workbook.GetWorkSheet("Sheet1");

    // Check if sheet exists
    if (sheet == null)
    {
        Console.WriteLine("Worksheet not found!");
        return;
    }

    // Process data
    var value = sheet["A1"].Value;
}
catch (Exception ex)
{
    Console.WriteLine($"Error reading Excel file: {ex.Message}");
}
try
{
    WorkBook workbook = WorkBook.Load("test.xlsx");
    WorkSheet sheet = workbook.GetWorkSheet("Sheet1");

    // Check if sheet exists
    if (sheet == null)
    {
        Console.WriteLine("Worksheet not found!");
        return;
    }

    // Process data
    var value = sheet["A1"].Value;
}
catch (Exception ex)
{
    Console.WriteLine($"Error reading Excel file: {ex.Message}");
}
$vbLabelText   $csharpLabel

Für Produktionsanwendungen empfiehlt sich die Einrichtung von Protokollierung und die Implementierung geeigneter Fehlerbehandlungsmuster .

Was haben wir gelernt?

Dieser Artikel demonstriert, wie man Excel-Dateien, wie XLS und XLSX, in C# mit IronXL öffnet und liest. IronXL benötigt für Excel-bezogene Aufgaben keine Installation von Microsoft Excel auf dem System und eignet sich daher perfekt für Docker-Bereitstellungen und Azure Functions .

IronXL bietet eine umfassende Lösung für die programmatische Ausführung von Excel-bezogenen Aufgaben, einschließlich Formelberechnungen , Sortierung von Zeichenketten, Kürzen von Text, Suchen und Ersetzen, Zusammenführen und Aufheben der Zusammenführung , Speichern von Dateien und mehr. Sie können außerdem Zelldatenformate festlegen, mit bedingter Formatierung arbeiten und Diagramme erstellen .

Weitere Funktionen finden Sie unter Gruppierung und Aufhebung der Gruppierung , benannte Bereiche , Hyperlinks und Schutz von Excel-Dateien . Die vollständige API-Referenz bietet eine detaillierte Dokumentation aller Funktionen.

IronXL kann 30 Tage lang kostenlos getestet werden und ist für die kommerzielle Nutzung lizenzierbar . Das Lite-Paket von IronXL beginnt bei $799. Weitere Ressourcen finden Sie im Tutorial-Bereich oder in den Codebeispielen für gängige Anwendungsfälle.

Häufig gestellte Fragen

Wie kann ich Excel-Dateien in C# öffnen, ohne Interop zu verwenden?

Sie können Excel-Dateien in C# ohne Interop öffnen, indem Sie die IronXL-Bibliothek nutzen. Verwenden Sie die WorkBook.Load-Methode, um eine Excel-Datei in eine WorkBook-Instanz zu laden, die Ihnen den Zugriff und die Manipulation der Daten innerhalb der Datei ermöglicht.

Welche Dateiformate sind mit dieser C# Excel-Bibliothek kompatibel?

IronXL unterstützt eine Vielzahl von Excel-Dateiformaten, einschließlich XLS, XLSX, CSV und TSV. Dies ermöglicht es Entwicklern, diese Formate in ihren C#-Anwendungen flexibel zu öffnen, zu lesen und zu schreiben.

Kann ich Excel-Dateien in C# mit dieser Bibliothek bearbeiten?

Ja, Sie können Excel-Dateien mit IronXL bearbeiten. Nach dem Laden eines Arbeitsbuchs können Sie Daten ändern, neue Arbeitsblätter hinzufügen und dann Änderungen in der Datei speichern oder in verschiedenen Formaten exportieren.

Wie installiere ich diese Bibliothek zur Verwendung in meinem C#-Projekt?

Um IronXL in Ihrem C#-Projekt zu installieren, können Sie den NuGet-Paketmanager in Visual Studio verwenden, um die Bibliothek hinzuzufügen. Alternativ können Sie die .NET Excel DLL herunterladen und in Ihrem Projekt referenzieren.

Ist es möglich, Excel-Dateien mit dieser Bibliothek zu verschlüsseln?

Ja, IronXL ermöglicht es Ihnen, Excel-Dateien zu verschlüsseln und zu entschlüsseln. Sie können Ihre Excel-Dokumente mit Passwörtern sichern, um sensible Daten während der Dateivorgänge zu schützen.

Unterstützt diese Bibliothek die Neuberechnung von Formeln in Excel-Blättern?

IronXL unterstützt die automatische Neuberechnung von Formeln, wodurch Änderungen sofort aktualisiert werden, wie in Excel.

Wie kann ich spezifische Zellwerte in einem Excel-Arbeitsblatt mit dieser Bibliothek lesen?

Um spezifische Zellwerte mit IronXL zu lesen, können Sie die Zelle mit Excel-Notation referenzieren. Zum Beispiel wird sheet["A1"].StringValue den Stringwert aus Zelle A1 abrufen.

Kann diese Bibliothek auf verschiedenen Betriebssystemen verwendet werden?

Ja, IronXL ist mit mehreren Betriebssystemen kompatibel, einschließlich Windows, Linux und macOS. Es unterstützt auch die Bereitstellung in Docker-, Azure- und AWS-Umgebungen.

Welche Vorteile bietet die Verwendung dieser Bibliothek im Vergleich zu MS Office Interop?

IronXL bietet mehrere Vorteile gegenüber MS Office Interop, zum Beispiel ist es nicht erforderlich, Excel auf dem System installiert zu haben, bessere Leistung in Serverumgebungen und Benutzerfreundlichkeit mit modernen .NET-Anwendungen.

Gibt es eine kostenlose Testversion für diese C# Excel-Bibliothek?

Ja, IronXL bietet eine 30-tägige kostenlose Testversion, die es Ihnen ermöglicht, seine Funktionen und Fähigkeiten zu testen, bevor Sie sich für eine kommerzielle Lizenz für Ihre Projekte entscheiden.

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