Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Einfaches Importieren, Lesen und Manipulieren von MS Excel-Dateien in C# mit IronXL

Die Arbeit mit Microsoft Excel-Dateien ist für viele .NET-Entwickler eine tägliche Anforderung. Ob es um den Import von Kundendaten, die Verarbeitung von Finanzberichten oder die Migration von Daten aus Tabellenkalkulationen oder Excel-Arbeitsmappen in Datenbanken geht - Entwickler benötigen eine zuverlässige Möglichkeit, Excel-Dateien zu lesen oder Excel (XLSX)-Dateien zu exportieren, ohne dass komplexe Abhängigkeiten bestehen oder Excel installiert sein muss. IronXL bietet eine unkomplizierte Lösung, die plattformübergreifend funktioniert und die Installation von Microsoft Office überflüssig macht.

Leichtes Importieren, Lesen und Manipulieren von MS Excel-Dateidaten in C# mit IronXL: Bild 1 - IronXL

Wie fange ich mit C&num an; Excel-Daten importieren?

Der Einstieg in den Excel-Import in C# dauert mit IronXL nur wenige Minuten. Die Excel-Bibliothek verarbeitet sowohl ältere XLS- als auch moderne XLSX-Formate sowie CSV, TSV und andere Tabellenkalkulationsformate nahtlos. Im Gegensatz zu Lösungen, die auf Microsoft.Office.Interop.Excel basieren, läuft IronXL unabhängig auf jeder .NET- oder .NET Core-Plattform.

Leichtes Importieren, Lesen und Manipulieren von MS Excel-Dateidaten in C# mit IronXL: Image 2 - Cross Platform

Installieren Sie IronXL zunächst über den NuGet Package Manager oder wählen Sie NuGet-Pakete in Visual Studio verwalten:

Install-Package IronXL.Excel

Leichtes Importieren, Lesen und Manipulieren von MS Excel-Dateidaten in C# mit IronXL: Bild 3 - Installation

Einmal installiert, ist der Import von Excel-Daten denkbar einfach:

using IronXL;
static void Main(string[] args)
{
 // Load any Excel file
 WorkBook workBook = WorkBook.Load("ProductData.xlsx");
 // Access the first worksheet
 WorkSheet sheet = workBook.WorkSheets[0];
 // Read a cell value
 string value = sheet["B1"].StringValue;
 Console.WriteLine(value);
}
using IronXL;
static void Main(string[] args)
{
 // Load any Excel file
 WorkBook workBook = WorkBook.Load("ProductData.xlsx");
 // Access the first worksheet
 WorkSheet sheet = workBook.WorkSheets[0];
 // Read a cell value
 string value = sheet["B1"].StringValue;
 Console.WriteLine(value);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieser Code demonstriert den zentralen Arbeitsablauf: Laden einer Arbeitsmappe, Zugriff auf ein Arbeitsblatt und Lesen von Zellwerten. Die Methode WorkBook.Load() erkennt automatisch das Dateiformat, egal ob es sich um XLS, XLSX oder sogar CSV handelt. Die intuitive Indexer-Syntax sheet["B1"] macht den Zugriff auf Zellen so natürlich wie die Arbeit mit Arrays. Für komplexere Vorgänge finden Sie in der IronXL API Referenz eine umfassende Dokumentation.

Beispiel-Input

Leichtes Importieren, Lesen und Manipulieren von MS Excel-Dateidaten in C# mit IronXL: Bild 4 - Excel Input

Ausgabe

Leichtes Importieren, Lesen und Manipulieren von MS Excel-Dateidaten in C# mit IronXL: Bild 5 - Konsolenausgabe

Wie kann ich Excel-Daten in C# Objekte einlesen?

Echte Anwendungen brauchen mehr als nur einzelne Zellwerte. IronXL zeichnet sich durch den Import ganzer Datensätze und deren Umwandlung in nutzbare C#-Objekte aus. Wenn Sie Excel-Dateien mit strukturierten Daten importieren müssen, bietet die Bibliothek mehrere Ansätze.

// Load the Excel file
WorkBook workBook = WorkBook.Load("ProductData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Read a range of cells
 var products = new List<Product>();
 foreach (var row in sheet.Rows)
 {
     var product = new Product
     {
         Id = row.Columns[0].IntValue,
         Name = row.Columns[1].StringValue,
         Price = row.Columns[2].DecimalValue,
         IsAvailable = row.Columns[3].BoolValue
     };
     products.Add(product);
 }
 foreach (var product in products)
 {
     Console.WriteLine($"Id: {product.Id}, Name: {product.Name}, Price: {product.Price}, Available: {product.IsAvailable}");
 }
// Load the Excel file
WorkBook workBook = WorkBook.Load("ProductData.xlsx");
WorkSheet sheet = workBook.DefaultWorkSheet;
// Read a range of cells
 var products = new List<Product>();
 foreach (var row in sheet.Rows)
 {
     var product = new Product
     {
         Id = row.Columns[0].IntValue,
         Name = row.Columns[1].StringValue,
         Price = row.Columns[2].DecimalValue,
         IsAvailable = row.Columns[3].BoolValue
     };
     products.Add(product);
 }
 foreach (var product in products)
 {
     Console.WriteLine($"Id: {product.Id}, Name: {product.Name}, Price: {product.Price}, Available: {product.IsAvailable}");
 }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Beispiel zeigt, wie man durch Zeilen iteriert und Excel-Daten auf stark typisierte C#-Objekte abbildet. Bei den typisierten Eigenschaften wie IntValue, StringValue und DecimalValue wird die Typkonvertierung automatisch durchgeführt. Dieser Ansatz erspart das manuelle Parsen und reduziert Fehler bei der Arbeit mit verschiedenen Datentypen. Viele Entwickler auf Stack Overflow schätzen diesen typsicheren Ansatz für den Excel-Datenimport.

Ausgabe

Leichtes Importieren, Lesen und Manipulieren von MS Excel-Dateidaten in C# mit IronXL: Bild 6 - Objektausgabe

Für einen eleganteren Datenzugriff unterstützt IronXL Bereichsoperationen:

// Read specific ranges of ProductData.xlsx file
Range dataRange = sheet["A1:D5"];
// Calculate aggregates directly
decimal sum = sheet["C1:C5"].Sum();
Console.WriteLine($"Sum of C1:C5: {sum}");
decimal max = sheet["C1:C5"].Max(c => c.DecimalValue);
Console.WriteLine($"Max of C1:C5: {max}");
// Use LINQ for filtering
var highValueOrders = dataRange
    .Where(cell => cell.DecimalValue > 100)
    .Select(cell => cell.Value)
    .ToList();
Console.WriteLine("High value orders (>100):");
// Print the high value orders to the console
foreach (var order in highValueOrders)
{
    Console.WriteLine(order);
}
// Read specific ranges of ProductData.xlsx file
Range dataRange = sheet["A1:D5"];
// Calculate aggregates directly
decimal sum = sheet["C1:C5"].Sum();
Console.WriteLine($"Sum of C1:C5: {sum}");
decimal max = sheet["C1:C5"].Max(c => c.DecimalValue);
Console.WriteLine($"Max of C1:C5: {max}");
// Use LINQ for filtering
var highValueOrders = dataRange
    .Where(cell => cell.DecimalValue > 100)
    .Select(cell => cell.Value)
    .ToList();
Console.WriteLine("High value orders (>100):");
// Print the high value orders to the console
foreach (var order in highValueOrders)
{
    Console.WriteLine(order);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die Range-Klasse bietet einen sammlungsähnlichen Zugriff auf mehrere Zellen gleichzeitig. LINQ-Kompatibilität bedeutet, dass Entwickler Excel-Daten mit Hilfe vertrauter C#-Muster filtern, transformieren und aggregieren können. Die eingebauten Aggregationsmethoden, wie z. B. Sum() und Max(), arbeiten direkt mit Zellbereichen, ohne vorher alle Daten in den Speicher zu laden.

Ausgabe

Leichtes Importieren, Lesen und Manipulieren von MS Excel-Dateidaten in C# mit IronXL: Bild 7 - Bereichsausgabe

Wie kann ich Excel in DataTable konvertieren?

Die DataTable-Konvertierung ist für Datenbankoperationen und Datenbindungsszenarien unerlässlich. IronXL bietet integrierte Methoden, die die Konvertierung von Excel zu DataTable effizient durchführen. Diese Funktion ist besonders nützlich, wenn Sie Excel-Tabellen in SQL Server oder andere Datenbanken importieren müssen.

using System.Data;
// Load Excel file
WorkBook workBook = WorkBook.Load("inventory.xlsx");
// Select first Excel worksheet
WorkSheet sheet = workBook.WorkSheets.First();
// Convert to DataTable with headers
DataTable dataTable = sheet.ToDataTable(true);
// The DataTable is ready for database operations
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString))
{
    bulkCopy.DestinationTableName = "Inventory";
    bulkCopy.WriteToServer(dataTable);
}
using System.Data;
// Load Excel file
WorkBook workBook = WorkBook.Load("inventory.xlsx");
// Select first Excel worksheet
WorkSheet sheet = workBook.WorkSheets.First();
// Convert to DataTable with headers
DataTable dataTable = sheet.ToDataTable(true);
// The DataTable is ready for database operations
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionString))
{
    bulkCopy.DestinationTableName = "Inventory";
    bulkCopy.WriteToServer(dataTable);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die Methode ToDataTable() akzeptiert einen booleschen Parameter, der angibt, ob die erste Zeile Kopfzeilen enthält. Wenn diese Option auf true gesetzt ist, verwendet IronXL automatisch die Werte der ersten Zeile als Spaltennamen in der DataTable. Diese DataTable lässt sich nahtlos in ADO.NET-Operationen, Entity Framework und Datenbindungssteuerungen integrieren. Die Dokumentation von Microsoft zu SqlBulkCopy zeigt, wie effizient dieses Muster große Datenimporte handhabt.

Für mehr Kontrolle über den Konvertierungsprozess:

// Custom DataTable conversion
DataTable customTable = new DataTable();
// Define columns based on Excel structure
for (int col = 0; col < sheet.ColumnCount; col++)
{
    customTable.Columns.Add($"Column{col + 1}", typeof(string));
}
// Import data with validation
foreach (var row in sheet.Rows)
{
    var dataRow = customTable.NewRow();
    for (int col = 0; col < sheet.ColumnCount; col++)
    {
        dataRow[col] = row.Columns[col].Value ?? DBNull.Value;
    }
    customTable.Rows.Add(dataRow);
}
// Print column headers
foreach (DataColumn column in customTable.Columns)
{
    Console.Write($"{column.ColumnName}\t");
}
Console.WriteLine();
// Print each row
foreach (DataRow row in customTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
// Custom DataTable conversion
DataTable customTable = new DataTable();
// Define columns based on Excel structure
for (int col = 0; col < sheet.ColumnCount; col++)
{
    customTable.Columns.Add($"Column{col + 1}", typeof(string));
}
// Import data with validation
foreach (var row in sheet.Rows)
{
    var dataRow = customTable.NewRow();
    for (int col = 0; col < sheet.ColumnCount; col++)
    {
        dataRow[col] = row.Columns[col].Value ?? DBNull.Value;
    }
    customTable.Rows.Add(dataRow);
}
// Print column headers
foreach (DataColumn column in customTable.Columns)
{
    Console.Write($"{column.ColumnName}\t");
}
Console.WriteLine();
// Print each row
foreach (DataRow row in customTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item}\t");
    }
    Console.WriteLine();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieser Ansatz bietet Flexibilität bei der Datentransformation während des Imports. Nullwerte werden durch die Konvertierung in DBNull.Value elegant behandelt, um die Kompatibilität mit Datenbankoperationen zu gewährleisten.

Ausgabe

Leichtes Importieren, Lesen und Manipulieren von MS Excel-Dateidaten in C# mit IronXL: Bild 8 - DataTable Output

Welche erweiterten Funktionen unterstützen die Datenmanipulation?

IronXL geht über das einfache Lesen hinaus und bietet leistungsstarke Funktionen für komplexe Szenarien. Die Bibliothek behält die Excel-Formeln bei, so dass die Berechnungen dynamisch aktualisiert werden können. Für Entwickler, die mit komplexen Excel-Arbeitsmappen arbeiten, wird dadurch die Datenintegrität während des gesamten Importprozesses gewahrt.

Leichtes Importieren, Lesen und Manipulieren von MS Excel-Dateidaten in C# mit IronXL: Bild 9 - Funktionen

// Read calculated values from formulas
WorkSheet sheet = workBook.GetWorkSheet("Reports");
decimal calculatedTotal = sheet["E10"].DecimalValue; // Reads formula result
// Formulas remain intact
string formula = sheet["E10"].Formula; // Returns "=SUM(E2:E9)"
// Read calculated values from formulas
WorkSheet sheet = workBook.GetWorkSheet("Reports");
decimal calculatedTotal = sheet["E10"].DecimalValue; // Reads formula result
// Formulas remain intact
string formula = sheet["E10"].Formula; // Returns "=SUM(E2:E9)"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Formelunterstützung bedeutet, dass der Import von Excel-Dateien mit komplexen Berechnungen funktioniert, ohne dass die Geschäftslogik neu erstellt werden muss. Die Bibliothek wertet Formeln automatisch aus und gibt berechnete Werte zurück, wobei die ursprüngliche Struktur der Formel erhalten bleibt. Diese Funktion ist von unschätzbarem Wert, wenn Sie Excel-Dateien mit Finanzmodellen oder Berichtsvorlagen lesen müssen.

Die plattformübergreifende Kompatibilität gewährleistet ein konsistentes Verhalten in Windows-, Linux-, macOS- und Container-Umgebungen. Dank dieser Flexibilität eignet sich IronXL ideal für Cloud-Bereitstellungen und Microservices-Architekturen, bei denen eine Office-Installation nicht möglich ist. Die Dokumentation der .NET Foundation zeigt auf, wie moderne .NET-Anwendungen beim Import von Excel-Daten von dieser Plattformunabhängigkeit profitieren.

Die Entity-Framework-Integration rationalisiert Datenbank-Workflows für C#-Excel-Import-Szenarien:

var products = sheet.Rows.Skip(1)
    .Select(row => new Product
    {
        Name = row.Columns[0].StringValue,
        Price = row.Columns[1].DecimalValue
    })
    .ToList();
using (var context = new AppDbContext())
{
    context.Products.AddRange(products);
    await context.SaveChangesAsync();
}
var products = sheet.Rows.Skip(1)
    .Select(row => new Product
    {
        Name = row.Columns[0].StringValue,
        Price = row.Columns[1].DecimalValue
    })
    .ToList();
using (var context = new AppDbContext())
{
    context.Products.AddRange(products);
    await context.SaveChangesAsync();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Muster ermöglicht direkte Excel-zu-Datenbank-Pipelines mit minimalem Code, perfekt für Datenmigration und ETL-Prozesse. Laden Sie IronXL herunter, um umfassende Excel-Bearbeitungsfunktionen zu erhalten und Ihre Datenimport-Workflows zu rationalisieren.

Abschluss

IronXL verwandelt den Excel-Datenimport von einer komplexen Herausforderung in unkomplizierten C#-Code. Die intuitive API der Bibliothek, die umfassende Formatunterstützung und die plattformübergreifende Kompatibilität machen sie zur praktischen Wahl für Produktionsanwendungen, die eine Bearbeitung von Excel-Dateien erfordern.

Leichtes Importieren, Lesen und Manipulieren von MS Excel-Dateidaten in C# mit IronXL: Bild 10 - Lizenzierung

Sind Sie bereit, Excel-Dateien in Ihre C#-Projekte zu importieren? Starten Sie Ihre kostenlose Testversion, um den vollen Funktionsumfang von IronXL zu erkunden. Detaillierte Anleitungen zur Implementierung finden Sie in der kompletten Dokumentation oder in weiteren Excel-Tutorials für fortgeschrittene Szenarien. Für den produktiven Einsatz können Sie die Lizenzierungsoptionen einsehen, um die richtige Lösung für Ihr Team zu finden.

Häufig gestellte Fragen

Wie kann ich Excel-Daten in C# importieren?

Sie können IronXL verwenden, um Excel-Daten in C# zu importieren, ohne dass Microsoft Excel auf Ihrem System installiert sein muss.

Welche Vorteile bietet die Verwendung von IronXL für die Manipulation von Excel-Dateien?

IronXL ermöglicht es Entwicklern, Excel-Dateien in C# ohne komplexe Abhängigkeiten zu lesen, zu schreiben und zu manipulieren, und es funktioniert auf verschiedenen Plattformen.

Muss ich Microsoft Office installiert haben, um IronXL zu verwenden?

Nein, IronXL macht die Installation von Microsoft Office überflüssig und ermöglicht es Ihnen, mit Excel-Dateien direkt in Ihren C#-Anwendungen zu arbeiten.

Kann IronXL sowohl XLSX- als auch CSV-Dateiformate verarbeiten?

IronXL unterstützt verschiedene Excel-Dateiformate, darunter XLSX und CSV, und ist somit vielseitig für unterschiedliche Datenverarbeitungsanforderungen einsetzbar.

Ist IronXL für die Verarbeitung großer Excel-Dateien geeignet?

Ja, IronXL wurde entwickelt, um große Excel-Dateien effizient zu verarbeiten, so dass Entwickler umfangreiche Datensätze ohne Leistungsprobleme verarbeiten können.

Welche Plattformen werden von IronXL unterstützt?

IronXL ist mit mehreren Plattformen kompatibel und ermöglicht die plattformübergreifende Entwicklung und Bereitstellung von Anwendungen, die mit Excel-Dateien arbeiten.

Wie vereinfacht IronXL die Datenmigration von Excel zu Datenbanken?

IronXL bietet einfache Methoden zum Lesen und Exportieren von Daten aus Excel-Tabellen und erleichtert so die Übertragung von Daten in Datenbanken ohne komplexe Programmierung.

Kann ich IronXL verwenden, um die Erstellung von Excel-Berichten zu automatisieren?

Ja, IronXL ermöglicht die Automatisierung der Erstellung von Excel-Berichten, so dass Sie Excel-Dateien in C# programmatisch erstellen und bearbeiten können.

Eignet sich IronXL sowohl für kleine als auch für Unternehmensanwendungen?

IronXL ist vielseitig und skalierbar, so dass es sich sowohl für kleine Projekte als auch für große Unternehmensanwendungen eignet, die eine Bearbeitung von Excel-Dateien erfordern.

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