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 manipulieren, ohne dass Microsoft Office installiert sein muss. Laden Sie einfach Arbeitsmappen mit WorkBook.Load(), greifen Sie auf Arbeitsblätter zu und lesen Sie Zellwerte mit einer intuitiven Syntax wie sheet["A1"].

Dieses Tutorial untersucht die Verwendung von IronXL zum Öffnen und Lesen von Excel-Dateien in C#-Projekten und bietet Jungentwicklern 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 priorisiert. Es hilft Ihnen, Excel-Dateien effizient zu öffnen, zu lesen, zu erstellen und zu bearbeiten, ohne dass MS Office Interop benötigt wird, was es zu einer praktischen Wahl für Entwickler macht, die mit Excel in C# ohne Interop arbeiten möchten.

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

Was sind die Hauptfunktionen 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 zur Entwicklung von C# .NET-Anwendungen. Sie können Visual Studio von der Microsoft-Website herunterladen und installieren. Sie können auch JetBrains ReSharper & Rider verwenden. Für zusätzliche Hinweise zur Einrichtung siehe Erste Schritte Übersicht.
  2. IronXL - Die Excel-Bibliothek, die bei der Arbeit mit Excel-Blättern in C# hilft. Es muss in Ihrer C#-Anwendung installiert werden, bevor Sie es verwenden. Sie können es von der NuGet-Website oder über das NuGet-Paketverwaltungssystem in Visual Studio herunterladen. Sie können auch die .NET Excel DLL-Datei direkt herunterladen. Für die Implementierung der Lizenzierung siehe Lizenzschlüssel verwenden.

Welche Namespaces sollte 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 vorhandene 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 WorkBook Klasse und der Load Methode. Die LoadSpreadsheets Funktionalität 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 eine WorkBook Instanz. Um ein bestimmtes WorkSheet zu öffnen, rufen Sie es aus der WorkSheets Sammlung ab. Der Arbeitsblattverwaltung-Leitfaden bietet mehr Details zu Arbeitsblattoperationen:

// 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, die Spalten für Name, Position und Gehalt enthält, über 5 Mitarbeiter mit formatierten Kopfzeilen und Zellrahmen Excel-Datei

Wie lese ich Daten aus Excel-Zellen?

Sobald die Excel-Datei geöffnet ist, ist sie bereit für das Lesen von Daten. Daten aus Excel-Dateien in C# mit IronXL zu lesen, ist unkompliziert. Sie können Zellwerte lesen, indem Sie den Zellenbezug mit der Bereichauswahl-Funktionalität 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:

Microsoft Visual Studio Debug Console-Fenster zeigt erfolgreichen Wert '100000'-Extraktion aus Excel-Zelle C2 mit kontextueller Ausgabemeldung Excel lesen

Um Daten aus einem Zellbereich zu lesen, verwenden Sie eine Schleife, um durch den angegebenen Bereich zu iterieren. Das Excel-Bereich auswählen Beispiel bietet mehr 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 abgerufen und in der Konsole ausgegeben.

Microsoft Visual Studio Debug Console mit Syntaxhervorhebung zeigt Ausgabe vom Lesen des Excel-Bereichs A2:A6, Darstellung der Mitarbeiternamen John, Sara, Peter, Method und Katherine Bereich von Zellen lesen

Für detailliertere Lese- und Schreibbeispiele siehe das Excel-Lese-Tutorial in C#. Sie können Excel-Dateien auch in DataTables konvertieren für eine einfachere Manipulation:

// 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 erleichtert auch das Erstellen neuer Arbeitsmappen für das Speichern und Abrufen von Daten. Der Tabellenkalkulationen erstellen-Leitfaden bietet 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. Für fortgeschrittenere Erstellungs-Muster siehe Neue Excel-Datei erstellen.

Wie fügt man einem Workbook Arbeitsblätter 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 die Verwaltung von Arbeitsblättern und das 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 zeigt Zelle A1 gefüllt mit 'Example'-Text, der programmgesteuert mit C# hinzugefügt wurde, mit dem GDPByCountry Arbeitsblatttabulator sichtbar und Zellenhervorhebung, um den hinzugefügten Wert zu zeigen Wert zur Zelle hinzufügen

Arbeiten mit verschiedenen Excel-Formaten

IronXL unterstützt mehrere Excel-Formate. So verwalten Sie verschiedene Dateitypen:

// 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 das Konvertieren von Tabellenkalkulationsdateitypen und das Konvertieren von XLSX in CSV, JSON, XML.

Fehlerbehandlung und bewährte Praktiken

Bei der Arbeit mit Excel-Dateien implementieren Sie eine ordnungsgemäße Fehlerbehandlung:

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 denken Sie über die Einrichtung des Protokolls und die Implementierung ordnungsgemäßer Fehlerbehandlungs-Muster nach.

Was haben wir gelernt?

Dieser Artikel demonstriert, wie man Excel-Dateien, wie XLS und XLSX, in C# mit IronXL öffnet und liest. IronXL erfordert nicht, dass Microsoft Excel auf dem System installiert ist, um Aufgaben im Zusammenhang mit Excel auszuführen, was es perfekt macht für Docker-Bereitstellungen und Azure-Funktionen.

IronXL bietet eine umfassende Lösung für Excel-bezogene Aufgaben programmgesteuert, einschließlich Formelberechnung, Stringsortierung, Zusammenfassung, Finden und Ersetzen, Zusammenführen und Entkoppeln, Speichern von Dateien und mehr. Sie können auch Zellendatenformate festlegen, mit bedingter Formatierung arbeiten und Diagramme erstellen.

Für fortgeschrittene Funktionen entdecken Sie Gruppierung und Entgruppierung, benannte Bereiche, Hyperlinks und Schutz von Excel-Dateien. Die vollständige API Referenz bietet eine detaillierte Dokumentation für alle Funktionen.

IronXL ist für eine kostenlose 30-Tage-Testversion verfügbar und kann lizenziert werden für kommerzielle Nutzung. IronXLs Lite-Paket beginnt bei $799. Für zusätzliche Ressourcen besuchen Sie den Tutorial-Bereich oder erkunden Sie Code-Beispiele für häufige Szenarien.

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me