Zum Fußzeileninhalt springen
MIT ANDEREN KOMPONENTEN VERGLEICHEN

ASP.NET-Export nach Excel: Vergleich der besten Tools für C#-Entwickler

Der Export von Daten in Excel-Dateien ist in ASP.NET Core-Webanwendungen unerlässlich. Ob es darum geht, Berichte aus einer Datenbank zu generieren, den Benutzern den Export von GridView-Inhalten zu ermöglichen oder CSV-Exporte zu erstellen - Entwickler benötigen zuverlässige Methoden zur Erstellung von Excel-Dokumenten. Die Dateien müssen sich in Microsoft Excel korrekt öffnen lassen, ohne dass Browserwarnungen auftreten oder eine neue Seite für den Download erforderlich ist.

Dieser Artikel vergleicht gängige Ansätze für den Excel-Export in ASP.NET Core, wobei traditionelle Methoden neben modernen Bibliotheken wie IronXL, ClosedXMLund EPPlusuntersucht werden.

Starten Sie Ihre kostenlose Testversion und erfahren Sie, wie IronXLdie Erstellung von Excel-Dateien in Ihren ASP.NET Core-Projekten vereinfacht.

Was sind die gängigen Methoden zum Exportieren von Daten nach Excel in ASP.NET Core?

Der einfachste Weg, Daten zu exportieren, umfasst mehrere unterschiedliche Ansätze. Die meisten Arbeitsabläufe beginnen mit der Erstellung einer Verbindungszeichenfolge zum Abrufen von Daten, bevor ein Exportpfad gewählt wird.

  • Traditioneller MIME-Typ-Ansatz: Diese herkömmliche Methode verwendet die Eigenschaft Content Type (auf application/vnd.ms-excel gesetzt) und überträgt HTML-Inhalte an den Browser. Sie funktioniert zwar als Standardlösung in älteren Systemen, löst aber oft Formatwarnungen aus.
  • Bibliotheksbasierte Lösungen: Moderne Bibliotheken erfordern das Hinzufügen von NuGet-Referenzen, um echte XLSX-Dateien im Open XML-Format zu erzeugen. Dazu gehören IronXL, ClosedXMLund EPPlus, die APIs zur Erstellung von Arbeitsmappenobjekten und zum Speichern von Dateien mit korrekter Formatierung bieten.

    Feature MIME-Typ/HTML ClosedXML EPPlus IronXL
    Echte XLSX-Ausgabe Nein Ja Ja Ja
    Unterstützung von CSV-Dateien Handbuch Beschränkt Beschränkt Native
    Keine Excel-Warnung Nein Ja Ja Ja
    Formel-Unterstützung Nein Ja Ja Ja
    JSON/XML-Export Nein Nein Nein Ja
    Kommerzielle Lizenz Nicht anwendbar MIT Polyform Kommerziell
    .NET Core-Unterstützung Ja Ja Ja Ja

Wie funktioniert der traditionelle GridView-Exportansatz?

In älteren WebForms und einigen älteren MVC-Patterns exportieren Entwickler häufig GridView-Daten, indem sie sie als HTML rendern. Die Anwendung verwendet Response.AddHeader, um den Dateinamen zu definieren und schreibt dann den HTML-Stream direkt in die Ausgabe.

// Traditional approach - exports HTML disguised as Excel
public void ExportToExcel(object sender, EventArgs e)
{
    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "application/vnd.ms-excel";
    Response.AddHeader("content-disposition", "attachment;filename=Report.xls");
    StringWriter stringWriter = new StringWriter();
    HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
    // Render grid content as HTML
    DataGrid1.RenderControl(htmlTextWriter);
    Response.Write(stringWriter.ToString());
    Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
    // Required to prevent server form rendering errors
}
// Traditional approach - exports HTML disguised as Excel
public void ExportToExcel(object sender, EventArgs e)
{
    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "application/vnd.ms-excel";
    Response.AddHeader("content-disposition", "attachment;filename=Report.xls");
    StringWriter stringWriter = new StringWriter();
    HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
    // Render grid content as HTML
    DataGrid1.RenderControl(htmlTextWriter);
    Response.Write(stringWriter.ToString());
    Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
    // Required to prevent server form rendering errors
}
$vbLabelText   $csharpLabel

Legacy-Ausgabe

ASP.NET Export to Excel: Vergleich der besten Tools für C#-Entwickler: Bild 1 - Legacy-Excel-Exportausgabe

Diese Methode erfordert die public override void VerifyRenderingInServerForm Funktion, um die serverseitige Validierung zu umgehen. Die generierte Datei enthält jedoch eher HTML- als echte Excel-Formatdaten, was Microsoft Excel dazu veranlasst, Formatwarnungen anzuzeigen. Bei diesem Ansatz können keine korrekten Excel-Tabellenformatierungen, Formeln oder getippte Spalten erstellt werden.

Wie vereinfacht IronXLdie Erstellung von Excel-Dateien in ASP.NET Core?

IronXL bietet eine moderne API zur Erstellung echter Excel-Dateien ohne Microsoft Office-Abhängigkeiten. Sie ermöglicht es den Benutzern, einen Download von der gleichen Seite auszulösen, ohne die Benutzererfahrung zu unterbrechen. Das folgende Beispiel zeigt, wie Daten in ein Excel-Dokument exportiert und an den Browser des Benutzers übertragen werden können:

using IronXL;
using Microsoft.AspNetCore.Mvc;
public class ExportController : Controller
{
    [HttpPost]
    public IActionResult ExportReport()
    {
        // Create workbook and worksheet
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet worksheet = workbook.CreateWorkSheet("Sales Data");
        // Add header row
        worksheet["A1"].Value = "Product";
        worksheet["B1"].Value = "Quantity";
        worksheet["C1"].Value = "Revenue";
        // Populate data rows from your data source
        worksheet["A2"].Value = "Widget A";
        worksheet["B2"].Value = 150;
        worksheet["C2"].Value = 4500.00;
        worksheet["A3"].Value = "Widget B";
        worksheet["B3"].Value = 230;
        worksheet["C3"].Value = 6900.00;
        // Style the header cells
        var headerRange = worksheet["A1:C1"];
        headerRange.Style.Font.Bold = true;
        // Generate file for browser download
        byte[] fileBytes = workbook.ToByteArray();
        string filename = $"SalesReport_{DateTime.Now:yyyyMMdd}.xlsx";
        return File(fileBytes,
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            filename);
    }
}
using IronXL;
using Microsoft.AspNetCore.Mvc;
public class ExportController : Controller
{
    [HttpPost]
    public IActionResult ExportReport()
    {
        // Create workbook and worksheet
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet worksheet = workbook.CreateWorkSheet("Sales Data");
        // Add header row
        worksheet["A1"].Value = "Product";
        worksheet["B1"].Value = "Quantity";
        worksheet["C1"].Value = "Revenue";
        // Populate data rows from your data source
        worksheet["A2"].Value = "Widget A";
        worksheet["B2"].Value = 150;
        worksheet["C2"].Value = 4500.00;
        worksheet["A3"].Value = "Widget B";
        worksheet["B3"].Value = 230;
        worksheet["C3"].Value = 6900.00;
        // Style the header cells
        var headerRange = worksheet["A1:C1"];
        headerRange.Style.Font.Bold = true;
        // Generate file for browser download
        byte[] fileBytes = workbook.ToByteArray();
        string filename = $"SalesReport_{DateTime.Now:yyyyMMdd}.xlsx";
        return File(fileBytes,
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            filename);
    }
}
$vbLabelText   $csharpLabel

IronXL-Ausgabe

ASP.NET Export to Excel: Vergleich der besten Tools für C#-Entwickler: Bild 2 - IronXL-Export nach Excel-Ausgabe

Die Methode WorkBook.Create von IronXLerzeugt ein neues Excel-Dokument, während CreateWorkSheet benannte Arbeitsblattregisterkarten hinzufügt. Die Bibliothek handhabt die gesamte Open XML-Komplexität intern, so dass sich die Entwickler auf die Befüllung der Zellen mit Daten konzentrieren können.

Die ToByteArray()-Methode konvertiert die Arbeitsmappe in Bytes, die für die ASP.NET Core File()-Antwort geeignet sind, und setzt automatisch die korrekten Inhaltsverteilungs-Header für den Browser-Download. Die Benutzer erhalten eine echte XLSX-Datei, die ohne Warnungen geöffnet wird.

Für CSV-Export-Szenarien, die das Format "Komma getrennte Werte" erfordern, bietet IronXLdie Methode SaveAsCsv:

// Export as CSV file instead of XLSX
workbook.SaveAsCsv("output.csv");
// Export as CSV file instead of XLSX
workbook.SaveAsCsv("output.csv");
$vbLabelText   $csharpLabel

Wie lassen sich ClosedXMLund EPPlusvergleichen?

ClosedXML umhüllt das Open XML SDK von Microsoft mit einer benutzerfreundlichen API. Installieren Sie im Solution Explorer über NuGet mit Install-Package ClosedXML:

using ClosedXML.Excel;
public IActionResult ExportWithClosedXML()
{
    using var workbook = new XLWorkbook();
    var worksheet = workbook.AddWorksheet("Data");
    worksheet.Cell(1, 1).Value = "Name";
    worksheet.Cell(1, 2).Value = "Amount";
    using var stream = new MemoryStream();
    workbook.SaveAs(stream);
    return File(stream.ToArray(),
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        "export.xlsx");
}
using ClosedXML.Excel;
public IActionResult ExportWithClosedXML()
{
    using var workbook = new XLWorkbook();
    var worksheet = workbook.AddWorksheet("Data");
    worksheet.Cell(1, 1).Value = "Name";
    worksheet.Cell(1, 2).Value = "Amount";
    using var stream = new MemoryStream();
    workbook.SaveAs(stream);
    return File(stream.ToArray(),
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        "export.xlsx");
}
$vbLabelText   $csharpLabel

ClosedXML-Ausgabe

ASP.NET Export to Excel: Vergleich der besten Tools für C#-Entwickler: Bild 3 - ClosedXML-Export nach Excel-Ausgabe

EPPlus bietet ähnliche Funktionen, erfordert jedoch die Beachtung der Lizenzbedingungen für die kommerzielle Nutzung. Beide Bibliotheken erstellen gültige Excel-Dateien, verfügen jedoch nicht über den nativen CSV-Export und die JSON-Konvertierungsunterstützung von IronXL.

Welche Bibliothek sollten Entwickler für den Excel-Export wählen?

Bei ASP.NET Core-Anwendungen, die einen Excel-Export erfordern, hängt die Auswahl der Bibliothek von den Projektanforderungen ab:

Wählen Sie IronXL, wenn: Sie Unterstützung für mehrere Formate benötigen (XLSX, CSV-Datei, JSON, XML), professionellen Support benötigen oder kommerzielle Anwendungen entwickeln, die eine garantierte Kompatibilität mit komplexen Excel-Funktionen innerhalb von ASP-Projekten erfordern.

Wählen Sie ClosedXML, wenn: Sie Open-Source-Projekte erstellen, die eine MIT-Lizenz erfordern und eine einfache Excel-Dateigenerierung beinhalten.

EPPlus ist die richtige Wahl, wenn: Bestehende Projekte bereits EPPlusnutzen und die Migrationskosten die Lizenzkosten überwiegen.

Fähigkeit IronXL ClosedXML EPPlus
CSV/JSON/XML-Export ✓Nativ
DataTable-Integration
Professionelle Unterstützung ✓Enthalten Gemeinschaft Bezahlte Stufe
Systemvoraussetzungen Keine Keine Keine

Zusammenfassung

Bei der Implementierung von ASP.NET-Export nach Excel-Funktionen muss zwischen veralteten HTML-basierten Methoden und modernen Bibliothekslösungen gewählt werden. Gleichzeitig werden mit dem traditionellen MIME-Typ-Ansatz unter Verwendung des neuen HtmlTextWriter und Response.AddHeader für die Content-Disposition funktionale Downloads erstellt, aber das exportierte Dateiformat löst Warnungen aus und lässt echte Excel-Funktionen vermissen.

IronXL bietet echte Excel-Dateierzeugung mit mehreren Ausgabeformaten, intuitivem Arbeitsblatt- und Arbeitsmappenmanagement und ordnungsgemäßer Handhabung von Datenzeilen und Zellen. Die Bibliothek eliminiert void VerifyRenderingInServerForm Überschreibungen und object sender, EventArgs e Muster aus altem Code.

Eine Anleitung zur Implementierung finden Sie in der IronXL-Dokumentation und den Codebeispielen. Erwerben Sie eine Lizenz, um IronXLin der Produktion einzusetzen und professionelle Excel-Dokumente zu erstellen, die Ihre Benutzer über den Browser herunterladen können.

Starten Sie jetzt mit IronXL.
green arrow pointer

Häufig gestellte Fragen

Was sind die wichtigsten Funktionen von IronXL für den Export nach Excel in ASP.NET Core?

IronXL bietet eine nahtlose Generierung und Bearbeitung von Excel-Dateien und ermöglicht es Entwicklern, Daten ohne Installation von Microsoft Excel zu exportieren. Es unterstützt verschiedene Formate wie XLS, XLSX und CSV und bietet robuste Funktionen für die Gestaltung, Formatierung und Datenmanipulation.

Was ist der Unterschied zwischen IronXL und ClosedXML für ASP.NET Core-Projekte?

IronXL bietet umfangreichere Unterstützung für den Export komplexer Datenstrukturen und umfasst Funktionen wie Styling und das Einbetten von Bildern. ClosedXML ist zwar benutzerfreundlich, verfügt aber möglicherweise nicht über die fortschrittlichen Funktionen von IronXL, insbesondere für umfangreiche Anwendungen.

Ist IronXL für die Erstellung von Excel-Berichten aus Datenbanken in ASP.NET geeignet?

Ja, IronXL ist ideal für die Erstellung von Excel-Berichten aus Datenbanken und bietet einen einfachen Datenexport aus verschiedenen Datenquellen, wobei sichergestellt wird, dass die resultierenden Dateien mit Microsoft Excel kompatibel sind.

Was sind die Vorteile der Verwendung von IronXL gegenüber EPPlus?

IronXL bietet eine umfassendere API, eine bessere Leistung für große Datensätze und eine breitere Funktionalität für die Erstellung und Bearbeitung von Excel-Dateien, was es zu einer vielseitigeren Wahl für komplexe ASP.NET Core-Anwendungen macht.

Kann IronXL große Datensätze effizient verarbeiten?

IronXL ist auf Leistung optimiert und kann große Datenmengen effizient verarbeiten, so dass eine schnelle Datenverarbeitung und ein schneller Datenexport ohne Beeinträchtigung der Anwendungsgeschwindigkeit gewährleistet sind.

Muss für IronXL Microsoft Office installiert sein, um nach Excel exportieren zu können?

Nein, IronXL erfordert keine Installation von Microsoft Office. Es arbeitet unabhängig und bietet vollständige Excel-Dateierstellungs- und -bearbeitungsfunktionen innerhalb von ASP.NET Core-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