Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Wie man Excel-Dateien in C# liest, anstatt StreamReader zu verwenden

Viele C#-Entwickler stoßen bei der Arbeit mit Excel-Dateien auf ein frustrierendes Problem: Die Klasse StreamReader, die Textdateien zuverlässig verarbeitet, versagt völlig, wenn sie auf ein Excel-Dokument angewendet wird. Wenn Sie versucht haben, eine Excel-Datei mit StreamReader in C# zu lesen und dabei nur verstümmelte Zeichen, Binärrauschen oder unerwartete Ausnahmen erhalten haben, sind Sie nicht allein. Dieser Leitfaden erklärt genau, warum StreamReader keine Excel-Dateien verarbeiten kann, und zeigt Ihnen, wie Sie das Problem mithilfe von IronXL – einer speziellen Excel-Bibliothek for .NET , die keine Excel-Installation erfordert – korrekt lösen können.

Die Verwirrung entsteht oft dadurch, dass CSV-Dateien – die Excel öffnen und speichern kann – mit StreamReader einwandfrei funktionieren. Echte Excel-Dateien (XLSX, XLS, XLSM) erfordern einen grundlegend anderen Ansatz. Wenn Sie diesen Unterschied verstehen, sparen Sie sich stundenlanges Debuggen und finden direkt das richtige Werkzeug für Ihre Aufgabe.

Alternative zum Lesen von Excel-Dateien mit StreamReader in C# - IronXL: Bild 1 - IronXL

Warum kann StreamReader keine Excel-Dateien lesen?

StreamReader ist ein textbasierter Reader. Es liest Zeichendaten Zeile für Zeile unter Verwendung einer festgelegten Kodierung (UTF-8, ASCII usw.) und hat keine Kenntnis von Binärstrukturen oder komprimierten Archiven. Die offizielle .NET StreamReader-Dokumentation bestätigt, dass diese Klasse ausschließlich für zeichencodierten Text konzipiert ist. Excel-Dateien sehen zwar aus wie einfache Tabellenkalkulationen, sind aber in Wirklichkeit komplexe Binär- oder ZIP-komprimierte XML-Strukturen, die StreamReader nicht interpretieren können.

Wenn Sie eine XLSX-Datei mit StreamReader öffnen, versuchen Sie im Wesentlichen, ein ZIP-Archiv als Klartext zu lesen. Das Ergebnis ist ein Strom binären Rauschens anstelle Ihrer Tabellendaten.

// This code will NOT work -- demonstrates the problem
using StreamReader reader = new StreamReader("ProductData.xlsx");
string content = reader.ReadLine();
Console.WriteLine(content); // Outputs garbled binary data like "PK♥♦"
// This code will NOT work -- demonstrates the problem
using StreamReader reader = new StreamReader("ProductData.xlsx");
string content = reader.ReadLine();
Console.WriteLine(content); // Outputs garbled binary data like "PK♥♦"
Imports System.IO

' This code will NOT work -- demonstrates the problem
Using reader As New StreamReader("ProductData.xlsx")
    Dim content As String = reader.ReadLine()
    Console.WriteLine(content) ' Outputs garbled binary data like "PK♥♦"
End Using
$vbLabelText   $csharpLabel

Wenn Sie diesen Codeausschnitt ausführen, werden anstelle Ihrer Tabellenzeilen Binärzeichen wie PK♥♦ oder ähnliches Rauschen angezeigt. Dies geschieht aus folgendem Grund:

  • XLSX-Dateien sind ZIP-Archive, die mehrere XML-Dateien enthalten: Arbeitsblätter, Stile, gemeinsame Zeichenketten, Beziehungen. Die Open XML SDK-Dokumentation bietet eine detaillierte Aufschlüsselung dieser Struktur.
  • XLS-Dateien verwenden ein proprietäres Binärformat (BIFF – Binary Interchange Dateiformat).
  • StreamReader wendet eine Zeichenkodierung auf die gelesenen Bytes an und erzeugt so für beide Formate eine sinnlose Ausgabe.

Beispiel-Input

Alternative zum Lesen einer Excel-Datei mit StreamReader in C# - IronXL: Bild 2 - Excel-Eingabe

Fehlerhafte Ausgabe bei Verwendung von StreamReader

Alternative zum Lesen einer Excel-Datei mit StreamReader in C# - IronXL: Bild 3 - Konsolenausgabe

Warum CSV funktioniert, XLSX aber nicht

CSV (Comma-Separated Values) ist ein Klartextformat. Jede Zeile entspricht einer Textzeile, und die Spalten sind durch Kommas getrennt. StreamReader kann CSV-Dateien problemlos lesen, da diese keine Binärdaten oder komprimierte Archive enthalten. XLSX ist grundlegend anders: Es verpackt mehrere XML-Dokumente in einen ZIP-Container mit Metadaten, Designs und Stildefinitionen. Eine einfache zeilenweise Lektüre ist nicht möglich.

Dieser Unterschied ist bei der Auswahl Ihrer Werkzeuge von Bedeutung. Für CSV-Dateien sind StreamReader oder File.ReadAllLines völlig ausreichend. Für echte Excel-Arbeitsmappen benötigen Sie eine Bibliothek, die das Format auf struktureller Ebene versteht.

Wie installiert man IronXL in einem .NET -Projekt?

IronXL ist eine .NET Bibliothek, die Excel-Dateien lesen, schreiben und erstellen kann, ohne dass Microsoft Excel installiert sein muss. Es unterstützt die Formate XLSX, XLS, XLSM, CSV und TSV und läuft unter Windows, Linux, macOS und Docker-Containern.

Zur Installation von IronXL verwenden Sie entweder die NuGet Paket-Manager-Konsole oder die .NET -Befehlszeilenschnittstelle. Das Paket ist auf NuGet unter dem Namen IronXL veröffentlicht:

Install-Package IronXL
dotnet add package IronXL
Install-Package IronXL
dotnet add package IronXL
SHELL

Nach der Installation fügen Sie die Direktive using IronXL; zu Ihrer Datei hinzu und schon können Sie mit Excel-Dokumenten arbeiten.

Alternative zum Lesen von Excel-Dateien mit StreamReader in C# - IronXL: Image 5 - Installation

Eine detaillierte Installationsanleitung und Informationen zu den NuGet -Konfigurationsoptionen finden Sie im IronXL NuGet Installationshandbuch . Es steht Ihnen eine kostenlose Testlizenz zur Verfügung, damit Sie IronXL vor dem Kauf in Ihrem Projekt testen können.

Alternative zum Lesen von Excel-Dateien mit StreamReader in C# - IronXL: Image 4 - Cross Platform

Wie liest man Excel-Dateien mit IronXL?

IronXL bietet eine intuitive API zum Lesen von Excel-Dateien in C#. Im Gegensatz zu StreamReader versteht IronXL die interne Struktur von Excel und ermöglicht Ihnen einen direkten Zugriff auf Zeilen, Spalten und Zellwerte. Die IronXL Dokumentation enthält vollständige API-Referenzen für alle unterstützten Operationen.

Hier erfahren Sie, wie Sie mit IronXL und Anweisungen auf oberster Ebene eine Excel-Datei lesen :

using IronXL;

// Load the Excel file from disk
WorkBook workbook = WorkBook.Load("ProductData.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Read a specific cell by address
string cellValue = worksheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");

// Iterate over a range of cells
foreach (var cell in worksheet["A1:C10"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}

// Read a numeric value
decimal price = worksheet["B2"].DecimalValue;
Console.WriteLine($"Price: {price:C}");
using IronXL;

// Load the Excel file from disk
WorkBook workbook = WorkBook.Load("ProductData.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Read a specific cell by address
string cellValue = worksheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");

// Iterate over a range of cells
foreach (var cell in worksheet["A1:C10"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}

// Read a numeric value
decimal price = worksheet["B2"].DecimalValue;
Console.WriteLine($"Price: {price:C}");
Imports IronXL

' Load the Excel file from disk
Dim workbook As WorkBook = WorkBook.Load("ProductData.xlsx")
Dim worksheet As WorkSheet = workbook.DefaultWorkSheet

' Read a specific cell by address
Dim cellValue As String = worksheet("A1").StringValue
Console.WriteLine($"Cell A1 contains: {cellValue}")

' Iterate over a range of cells
For Each cell In worksheet("A1:C10")
    Console.WriteLine($"{cell.AddressString}: {cell.Text}")
Next

' Read a numeric value
Dim price As Decimal = worksheet("B2").DecimalValue
Console.WriteLine($"Price: {price:C}")
$vbLabelText   $csharpLabel

Die Methode WorkBook.Load erkennt automatisch das Dateiformat (XLSX, XLS, XLSM, CSV) und übernimmt die gesamte komplexe Datenanalyse. Sie greifen auf Zellen mit der Standard-Excel-Notation wie "A1" oder auf Bereiche wie "A1:C10" zu, wodurch der Code für jeden, der mit Tabellenkalkulationen vertraut ist, sofort lesbar ist.

Zugriff auf mehrere Arbeitsblätter

Viele Arbeitshefte enthalten mehr als ein Blatt. Mit IronXL können Sie Arbeitsmappen mit vollständiger Tabellenblattnummerierung öffnen und darin navigieren :

using IronXL;

WorkBook workbook = WorkBook.Load("MultiSheet.xlsx");

// List all worksheets
foreach (WorkSheet sheet in workbook.WorkSheets)
{
    Console.WriteLine($"Sheet: {sheet.Name}, Rows: {sheet.RowCount}");
}

// Access a sheet by name
WorkSheet summary = workbook.GetWorkSheet("Summary");
string totalRevenue = summary["B20"].StringValue;
Console.WriteLine($"Total Revenue: {totalRevenue}");

// Access a sheet by index
WorkSheet firstSheet = workbook.WorkSheets[0];
int lastRow = firstSheet.RowCount;
Console.WriteLine($"Last row in first sheet: {lastRow}");
using IronXL;

WorkBook workbook = WorkBook.Load("MultiSheet.xlsx");

// List all worksheets
foreach (WorkSheet sheet in workbook.WorkSheets)
{
    Console.WriteLine($"Sheet: {sheet.Name}, Rows: {sheet.RowCount}");
}

// Access a sheet by name
WorkSheet summary = workbook.GetWorkSheet("Summary");
string totalRevenue = summary["B20"].StringValue;
Console.WriteLine($"Total Revenue: {totalRevenue}");

// Access a sheet by index
WorkSheet firstSheet = workbook.WorkSheets[0];
int lastRow = firstSheet.RowCount;
Console.WriteLine($"Last row in first sheet: {lastRow}");
Imports IronXL

Dim workbook As WorkBook = WorkBook.Load("MultiSheet.xlsx")

' List all worksheets
For Each sheet As WorkSheet In workbook.WorkSheets
    Console.WriteLine($"Sheet: {sheet.Name}, Rows: {sheet.RowCount}")
Next

' Access a sheet by name
Dim summary As WorkSheet = workbook.GetWorkSheet("Summary")
Dim totalRevenue As String = summary("B20").StringValue
Console.WriteLine($"Total Revenue: {totalRevenue}")

' Access a sheet by index
Dim firstSheet As WorkSheet = workbook.WorkSheets(0)
Dim lastRow As Integer = firstSheet.RowCount
Console.WriteLine($"Last row in first sheet: {lastRow}")
$vbLabelText   $csharpLabel

Dieser Ansatz ist weitaus sauberer als jeder Versuch, Excel mit StreamReader zu parsen oder Zeichenketten zu manipulieren.

Wie liest man Excel-Daten aus einem Speicherstrom?

In realen Anwendungen müssen Excel-Dateien oft aus Streams und nicht von Datenträgern verarbeitet werden. Typische Anwendungsfälle sind beispielsweise das Hochladen von Dateien über Webformulare, das Abrufen von Arbeitsmappen aus einer BLOB-Spalte einer Datenbank oder die Verarbeitung von Dateien, die aus Cloud-Speichern (Azure Blob Storage, AWS S3) heruntergeladen wurden. IronXL behandelt diese Szenarien über WorkBook.FromStream:

using IronXL;
using System.IO;

// Simulate reading file bytes (e.g., from a database or web upload)
byte[] fileBytes = File.ReadAllBytes("ProductData.xlsx");

using MemoryStream stream = new MemoryStream(fileBytes);
WorkBook workbook = WorkBook.FromStream(stream);
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Get row and column counts
Console.WriteLine($"Rows: {worksheet.RowCount}, Columns: {worksheet.ColumnCount}");

// Convert to DataTable for database or grid binding
var dataTable = worksheet.ToDataTable(useHeaderRow: true);
Console.WriteLine($"Loaded {dataTable.Rows.Count} data rows");

foreach (System.Data.DataRow row in dataTable.Rows)
{
    string productName = row["ProductName"]?.ToString() ?? string.Empty;
    string sku = row["SKU"]?.ToString() ?? string.Empty;
    Console.WriteLine($"Product: {productName}, SKU: {sku}");
}
using IronXL;
using System.IO;

// Simulate reading file bytes (e.g., from a database or web upload)
byte[] fileBytes = File.ReadAllBytes("ProductData.xlsx");

using MemoryStream stream = new MemoryStream(fileBytes);
WorkBook workbook = WorkBook.FromStream(stream);
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Get row and column counts
Console.WriteLine($"Rows: {worksheet.RowCount}, Columns: {worksheet.ColumnCount}");

// Convert to DataTable for database or grid binding
var dataTable = worksheet.ToDataTable(useHeaderRow: true);
Console.WriteLine($"Loaded {dataTable.Rows.Count} data rows");

foreach (System.Data.DataRow row in dataTable.Rows)
{
    string productName = row["ProductName"]?.ToString() ?? string.Empty;
    string sku = row["SKU"]?.ToString() ?? string.Empty;
    Console.WriteLine($"Product: {productName}, SKU: {sku}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

WorkBook.FromStream akzeptiert beliebige Stream -- MemoryStream, FileStream oder einen Netzwerk-Stream. Dank dieser Flexibilität müssen Sie niemals temporäre Dateien auf der Festplatte speichern, nur um Excel-Daten zu lesen. Die Konvertierung zu DataTable integriert sich auch direkt mit SqlBulkCopy, Datenbindungssteuerungen und Berichtsframeworks.

Ausgabe der Streamverarbeitung

Alternative zum Lesen einer Excel-Datei mit StreamReader in C# - IronXL: Bild 6 - Excel aus MemoryStream-Ausgabe lesen

Wann verwendet man ereignisgesteuertes Lesen in Excel?

In ereignisgesteuerten Architekturen – beispielsweise einer Datei-Upload-Schaltfläche in Windows Forms oder einer ASP.NET Controller-Aktion – enthält die Methodensignatur oft die Parameter object sender und EventArgs e. Die Excel-Verarbeitungslogik verwendet weiterhin die gleiche IronXL API, wird aber nicht mehr über eine Anweisung auf oberster Ebene, sondern innerhalb des Ereignishandlers aufgerufen. IronXL lässt sich nahtlos in jeden ereignisgesteuerten oder asynchronen Workflow integrieren, da es keine Abhängigkeit von einem UI-Thread hat.

Alternative zum Lesen von Excel-Dateien mit StreamReader in C# - IronXL: Image 7 - Features

Wie konvertiert man zwischen Excel- und CSV-Formaten?

Obwohl StreamReader CSV-Dateien verarbeiten kann, müssen Produktionsanwendungen häufig Daten zwischen Excel und CSV übertragen. IronXL vereinfacht die Formatkonvertierung. Sie können Excel-Daten in wenigen Zeilen in eine CSV-Datei exportieren oder CSV-Daten in eine Arbeitsmappe importieren :

using IronXL;

// Load an Excel file and save as CSV
WorkBook workbook = WorkBook.Load("SalesData.xlsx");
workbook.SaveAsCsv("output.csv");

// Load a CSV file and save as Excel
WorkBook csvWorkbook = WorkBook.LoadCSV("legacy-report.csv");
csvWorkbook.SaveAs("converted.xlsx");

// Export a specific worksheet to CSV
WorkSheet worksheet = workbook.WorkSheets[0];
worksheet.SaveAsCsv("sheet1-export.csv");
using IronXL;

// Load an Excel file and save as CSV
WorkBook workbook = WorkBook.Load("SalesData.xlsx");
workbook.SaveAsCsv("output.csv");

// Load a CSV file and save as Excel
WorkBook csvWorkbook = WorkBook.LoadCSV("legacy-report.csv");
csvWorkbook.SaveAs("converted.xlsx");

// Export a specific worksheet to CSV
WorkSheet worksheet = workbook.WorkSheets[0];
worksheet.SaveAsCsv("sheet1-export.csv");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Bei diesen Konvertierungen bleiben Ihre Daten erhalten, während gleichzeitig das Containerformat geändert wird. Beim Konvertieren von Excel in CSV exportiert IronXL standardmäßig das erste Arbeitsblatt; Sie können jedes beliebige Blatt auswählen. Durch die Konvertierung von CSV in Excel entsteht eine ordnungsgemäß strukturierte Arbeitsmappe, die Sie anschließend formatieren, mit Formeln versehen und mit zusätzlichen Daten füllen können.

Welche Unterschiede gibt es bei der Formatunterstützung?

Vergleich von StreamReader und IronXL beim Lesen verschiedener Dateiformate
Dateiformat StreamReader IronXL Anmerkungen
CSV (.csv) Ja Ja Reiner Text; StreamReader funktioniert einwandfrei
XLSX (.xlsx) Nein Ja ZIP-komprimiertes XML; erfordert Bibliothek
XLS (.xls) Nein Ja Binäres BIFF-Format; erfordert Bibliothek
XLSM (.xlsm) Nein Ja Arbeitsmappe mit Makros
TSV (.tsv) Ja Ja Tabulatorgetrennter Klartext

Wie erstellt und formatiert man Excel-Dateien mit IronXL?

Das Lesen von Excel-Daten ist nur ein Teil des Arbeitsablaufs. Viele Anwendungen erfordern außerdem das Erstellen neuer Excel-Dateien und das Anwenden von Formatierungen. IronXL unterstützt die Zellformatierung einschließlich Schriftarten, Farben, Rahmen, Zahlenformate und das Zusammenführen von Zellen :

using IronXL;

// Create a new workbook and worksheet
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workbook.CreateWorkSheet("Report");

// Write headers with formatting
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Units Sold";
sheet["C1"].Value = "Revenue";

// Apply bold formatting to header row
sheet["A1:C1"].Style.Font.Bold = true;
sheet["A1:C1"].Style.SetBackgroundColor("#4472C4");
sheet["A1:C1"].Style.Font.Color = "#FFFFFF";

// Write data rows
string[] products = { "Widget A", "Widget B", "Widget C" };
int[] units = { 120, 85, 210 };
decimal[] revenues = { 2400.00m, 1700.00m, 4200.00m };

for (int i = 0; i < products.Length; i++)
{
    sheet[$"A{i + 2}"].Value = products[i];
    sheet[$"B{i + 2}"].Value = units[i];
    sheet[$"C{i + 2}"].Value = revenues[i];
    sheet[$"C{i + 2}"].FormatString = "$#,##0.00";
}

// Save the workbook
workbook.SaveAs("FormattedReport.xlsx");
Console.WriteLine("Report created successfully.");
using IronXL;

// Create a new workbook and worksheet
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workbook.CreateWorkSheet("Report");

// Write headers with formatting
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Units Sold";
sheet["C1"].Value = "Revenue";

// Apply bold formatting to header row
sheet["A1:C1"].Style.Font.Bold = true;
sheet["A1:C1"].Style.SetBackgroundColor("#4472C4");
sheet["A1:C1"].Style.Font.Color = "#FFFFFF";

// Write data rows
string[] products = { "Widget A", "Widget B", "Widget C" };
int[] units = { 120, 85, 210 };
decimal[] revenues = { 2400.00m, 1700.00m, 4200.00m };

for (int i = 0; i < products.Length; i++)
{
    sheet[$"A{i + 2}"].Value = products[i];
    sheet[$"B{i + 2}"].Value = units[i];
    sheet[$"C{i + 2}"].Value = revenues[i];
    sheet[$"C{i + 2}"].FormatString = "$#,##0.00";
}

// Save the workbook
workbook.SaveAs("FormattedReport.xlsx");
Console.WriteLine("Report created successfully.");
Imports IronXL

' Create a new workbook and worksheet
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim sheet As WorkSheet = workbook.CreateWorkSheet("Report")

' Write headers with formatting
sheet("A1").Value = "Product"
sheet("B1").Value = "Units Sold"
sheet("C1").Value = "Revenue"

' Apply bold formatting to header row
sheet("A1:C1").Style.Font.Bold = True
sheet("A1:C1").Style.SetBackgroundColor("#4472C4")
sheet("A1:C1").Style.Font.Color = "#FFFFFF"

' Write data rows
Dim products As String() = {"Widget A", "Widget B", "Widget C"}
Dim units As Integer() = {120, 85, 210}
Dim revenues As Decimal() = {2400.0D, 1700.0D, 4200.0D}

For i As Integer = 0 To products.Length - 1
    sheet($"A{i + 2}").Value = products(i)
    sheet($"B{i + 2}").Value = units(i)
    sheet($"C{i + 2}").Value = revenues(i)
    sheet($"C{i + 2}").FormatString = "$#,##0.00"
Next

' Save the workbook
workbook.SaveAs("FormattedReport.xlsx")
Console.WriteLine("Report created successfully.")
$vbLabelText   $csharpLabel

Die Fähigkeit, sowohl bestehende Arbeitsmappen zu lesen als auch neue formatierte Dateien zu erstellen, macht IronXL zu einer kompletten Excel-Lösung for .NET Anwendungen. Auf der vollständigen IronXL -Funktionsseite finden Sie eine detaillierte Übersicht der unterstützten Operationen.

Datenexport in andere Formate

IronXL unterstützt außerdem den Export von Arbeitsmappendaten in DataSet-Objekte , was besonders nützlich ist, wenn mehrere Arbeitsblätter für blattübergreifende Berechnungen oder Masseneinfügungen in die Datenbank in den Speicher geladen werden. Die Methode ToDataSet gibt ein DataSet zurück, wobei jedes Arbeitsblatt zu einem DataTable wird.

Alternative zum Lesen von Excel-Dateien mit StreamReader in C# - IronXL: Image 8 - Licensing

Wie lizenziert und implementiert man IronXL in der Produktion?

IronXL ist für Entwicklung und Tests kostenlos. Für Produktionsanwendungen ist eine Lizenz erforderlich. Auf der Produktseite können Sie die Lizenzierungsoptionen für IronXL erkunden. Diese umfassen Entwickler-, Team- und Organisationsstufen, je nach Ihren Bereitstellungsanforderungen.

Nach dem Kauf müssen Sie Ihren Lizenzschlüssel im Code eingeben, bevor IronXL aufgerufen wird:

IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
Imports IronXl

IronXl.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
$vbLabelText   $csharpLabel

Alternativ können Sie die Umgebungsvariable IRONXL_LICENSE_KEY in Ihrer Bereitstellungsumgebung festlegen, und IronXL erkennt sie automatisch. Dies ist die bevorzugte Vorgehensweise für containerisierte Bereitstellungen (Docker, Kubernetes) und Cloud-Umgebungen, in denen das Festcodieren von Schlüsseln nicht akzeptabel ist.

Zur Evaluierung bietet eine kostenlose Testlizenz den vollen Funktionsumfang, sodass Sie IronXL anhand Ihrer spezifischen Arbeitslasten überprüfen können, bevor Sie sich zum Kauf entscheiden. Die Testversion ist ohne Kreditkarte verfügbar und wird sofort aktiviert.

Im Vergleich zu Alternativen wie Microsoft.Office.Interop.Excel bietet IronXL mehrere Vorteile bei der Bereitstellung:

  • Es ist nicht erforderlich, dass Microsoft Excel auf dem Server installiert ist.
  • Kompatibel mit Linux und Docker – entscheidend für Cloud-native Anwendungen
  • Keine Probleme mit der COM-Objektlebenszyklusverwaltung oder Apartment-Threading
  • Schnellerer Start und geringerer Speicherverbrauch in Serverkontexten
  • Einheitliches Verhalten auf allen unterstützten Plattformen

Diese Eigenschaften machen IronXL zu einer praktischen Wahl für jede .NET Anwendung, die Excel-Dateien im Produktivbetrieb verarbeiten muss, egal ob lokal oder in der Cloud.

Häufig gestellte Fragen

Warum kann StreamReader Excel-Dateien nicht direkt verarbeiten?

StreamReader ist für das Lesen von Textdateien konzipiert und kann die in Excel-Dateien verwendeten Binär- oder komplexen strukturierten Datenformate nicht verarbeiten. Diese Einschränkung führt zu fehlerhaften Zeichen oder Ausnahmen, wenn versucht wird, Excel-Dateien direkt mit StreamReader zu lesen.

Welche Lösung wird zum Lesen von Excel-Dateien in C# empfohlen?

Die empfohlene Lösung ist die Verwendung von IronXL, einer leistungsstarken Bibliothek, mit der Sie Excel-Dateien in C# lesen, bearbeiten und erstellen können, ohne dass Excel Interop erforderlich ist. IronXL kann die komplexe Struktur von Excel-Dateien effizient verarbeiten.

Welche Vorteile bietet IronXL gegenüber Excel Interop?

IronXL bietet gegenüber Excel Interop mehrere Vorteile, darunter eine bessere Performance, keine Abhängigkeit von der Installation von Excel auf dem Server- oder Clientrechner, eine einfachere Bereitstellung und die Möglichkeit, mit Excel-Dateien in Web- und Cloud-Umgebungen zu arbeiten.

Kann IronXL sowohl .xls- als auch .xlsx-Dateiformate verarbeiten?

Ja, IronXL kann sowohl .xls- als auch .xlsx-Excel-Dateiformate verarbeiten und bietet Entwicklern, die mit verschiedenen Arten von Excel-Dokumenten arbeiten, somit Flexibilität.

Kann IronXL in Webanwendungen verwendet werden?

Ja, IronXL ist dank seiner geringen Größe und Kompatibilität mit .NET Core und .NET Framework für den Einsatz in verschiedenen Anwendungstypen, einschließlich Webanwendungen, konzipiert.

Benötigt IronXL die Installation von Microsoft Excel?

Nein, IronXL benötigt weder auf dem Server noch auf dem Client-Rechner die Installation von Microsoft Excel und eignet sich daher ideal für serverseitige Anwendungen und Cloud-Umgebungen.

Was sind einige typische Anwendungsfälle für IronXL?

Typische Anwendungsfälle für IronXL sind die Datenextraktion und -analyse aus Excel-Dateien, die Erstellung von Berichten, die Automatisierung der Erstellung und Änderung von Excel-Dateien sowie die Integration von Excel-Daten in andere Anwendungen.

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

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an