Zum Fußzeileninhalt springen
IRONXL VERWENDEN

GridView nach Excel exportieren mit Formatierung C# Using IronXL

Exportieren von GridView-Daten nach Excel mit Formatierung mithilfe von C#

Das Exportieren von GridView-Daten nach Excel unter Beibehaltung von Zellfarben, Schriftarten und Formatierungen ist eine häufige Herausforderung bei der ASP.NET-Webentwicklung, insbesondere bei Anwendungen, die sich an ein globales Publikum (en-US) richten. Der Export des GridView nach Excel mit Formatierung (C#-Prozess) wird auf dem Server abgewickelt, der die Datenbindung, das Rendering und die Ausgabeformatierung verwaltet. Bei herkömmlichen Methoden, die new HtmlTextWriter und new StringWriter zum Schreiben von Steuerelementausgaben verwenden, entstehen oft Excel-Dateien mit Formatwarnungen. Einige Entwickler haben einen Workaround mit der Methode public override void VerifyRenderingInServerForm gefunden; Sie müssen das Ereignis VerifyRenderingInServerForm hinzufügen, um Laufzeitfehler während des Exportvorgangs zu vermeiden. Allerdings erzeugt dieser Ansatz HTML-basierte Dateien, die von MS Excel möglicherweise nicht korrekt dargestellt werden. Das GridView muss innerhalb eines Formular-Tags mit runat="server" platziert werden, um erfolgreich nach Excel exportiert werden zu können. Bestimmte Exportoptionen oder -einstellungen gelten standardmäßig, sofern sie nicht explizit geändert werden, wie beispielsweise die Option ExportAll oder die maximale Zeilenanzahl. Sowohl in C# als auch in VB.NET wird die Exportlogik üblicherweise durch ein Klickereignis auf eine Schaltfläche ausgelöst, wobei die Signatur des Ereignishandlers Parameter wie object sender, EventArgs e in C# oder ByVal sender As Object, ByVal e As EventArgs in VB.NET enthält.

IronXL bietet eine sauberere Lösung – es werden native Excel-Dateien mit voller Formatierungskontrolle erstellt, eine Installation von Microsoft Office ist nicht erforderlich. Dieser Artikel zeigt, wie man GridView in ASP.NET Web Forms- und Windows Forms-Anwendungen nach Excel exportiert.

Einführung in den Datenexport

Das Exportieren von Daten aus einem GridView in eine Excel-Datei ist eine grundlegende Funktion in vielen ASP.NET- und Windows Forms-Anwendungen. Egal ob Sie ein Reporting-Dashboard erstellen oder Benutzern die Möglichkeit geben, Daten für die Offline-Analyse herunterzuladen – die Möglichkeit, GridView-Inhalte in ein Excel-Arbeitsblatt zu exportieren, stellt sicher, dass Ihre Daten in MS Excel zugänglich und einfach zu bearbeiten sind. Dieser Prozess beinhaltet typischerweise das Übertragen der Werte aus dem GridView-Steuerelement – wie Zeilen, Spalten und Zellen – in eine strukturierte Excel-Datei, wobei die gewünschte Formatierung und der Stil beibehalten werden.

Eine gut konzipierte Exportlösung nach Excel geht über das einfache Kopieren von Daten hinaus; Außerdem werden Zeichenformatierungen beibehalten, abwechselnde Zeilenfarben zur besseren Lesbarkeit angewendet und die korrekte Inhaltsdisposition eingerichtet, damit Benutzer die Datei als Anhang herunterladen können. Entwickler verwenden häufig Codebeispiele, die zeigen, wie man eine Excel-Datei programmatisch erstellt, indem sie Methoden wie public override void VerifyRenderingInServerForm nutzen, um Laufzeitfehler in ASP.NET zu vermeiden, und Response.AddHeader verwenden, um den Dateinamen und den Anhangstyp anzugeben. In Windows Forms ist der Exportvorgang ähnlich, allerdings wird die Datei direkt im System gespeichert, anstatt an den Browser gestreamt zu werden.

Die Formatierung ist ein Schlüsselaspekt eines professionellen Exports. Durch die Anpassung von Schriftart, Hintergrundfarbe und Rahmen können Sie sicherstellen, dass die exportierte Excel-Tabelle dem Erscheinungsbild Ihrer Anwendung entspricht. Mithilfe von Objekten wie new StringWriter und new HtmlTextWriter oder fortgeschritteneren Bibliotheken können Sie die Ausgabe und Struktur Ihrer Excel-Datei steuern. Auch die Fehlerbehandlung ist unerlässlich: Durch das Abfangen von Ausnahmen (z. B. Exception ex ) gewährleisten Sie eine reibungslose Benutzererfahrung, selbst wenn beim Exportvorgang ein Fehler auftritt.

Wie exportiert man ein Windows Forms DataGridView mit Zellformatierung mithilfe des Objektsenders in eine Excel-Datei?

Die zuverlässigste Methode extrahiert die zugrunde liegende DataTable des GridView und erstellt programmatisch ein formatiertes Excel-Arbeitsblatt. Dieser Ansatz vermeidet Formatierungsfehler und ermöglicht die vollständige Kontrolle über Header-Stile, abwechselnde Zeilenfarben und Rahmen. Beachten Sie, dass Sie, falls Ihre Seite Paginierung verwendet, diese vor dem Export deaktivieren sollten, um alle Datensätze zu erfassen.

Windows Forms-Anwendungen verwenden das DataGridView-Steuerelement anstelle des webbasierten GridView. Der Export nach Excel folgt dem gleichen Muster – Zellenwerte aus Zeilen- und Zellensammlungen extrahieren und anschließend formatieren.

using IronXL;
using IronXL.Styles;
using System;
using System.Data;
using System.IO;
using System.Windows.Forms;

private void btnExport_Click(object sender, EventArgs e)
{
    DataTable dt = (DataTable)GridView1.DataSource;
    WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet workSheet = workBook.DefaultWorkSheet;
    // Export header row with formatting
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
        var cell = workSheet.GetCellAt(0, col);
        cell.Style.Font.Bold = true;
        cell.Style.SetBackgroundColor("#4472C4");
        cell.Style.Font.Color = "#FFFFFF";
        cell.Style.BottomBorder.Type = BorderType.Thin;
    }
    // Export data rows with alternating row color
    for (int row = 0; row < dt.Rows.Count; row++)
    {
        for (int col = 0; col < dt.Columns.Count; col++)
        {
            var cellValue = dt.Rows[row][col];
            workSheet.SetCellValue(row + 1, col, cellValue?.ToString() ?? "");
            var cell = workSheet.GetCellAt(row + 1, col);
            string bgColor = (row % 2 == 0) ? "#D6DCE5" : "#FFFFFF";
            cell.Style.SetBackgroundColor(bgColor);
            cell.Style.BottomBorder.Type = BorderType.Thin;
        }
    }
    // Save and write response for download
    MemoryStream stream = workBook.ToStream();
    using (SaveFileDialog saveFileDialog = new SaveFileDialog())
    {
        saveFileDialog.Filter = "Excel Files|*.xlsx";
        saveFileDialog.Title = "Save Excel File";
        saveFileDialog.FileName = "GridViewExport.xlsx";
        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            using (FileStream fileStream = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write))
            {
                stream.WriteTo(fileStream);
            }
            MessageBox.Show("Export successful.", "Export", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
}
using IronXL;
using IronXL.Styles;
using System;
using System.Data;
using System.IO;
using System.Windows.Forms;

private void btnExport_Click(object sender, EventArgs e)
{
    DataTable dt = (DataTable)GridView1.DataSource;
    WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet workSheet = workBook.DefaultWorkSheet;
    // Export header row with formatting
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        workSheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
        var cell = workSheet.GetCellAt(0, col);
        cell.Style.Font.Bold = true;
        cell.Style.SetBackgroundColor("#4472C4");
        cell.Style.Font.Color = "#FFFFFF";
        cell.Style.BottomBorder.Type = BorderType.Thin;
    }
    // Export data rows with alternating row color
    for (int row = 0; row < dt.Rows.Count; row++)
    {
        for (int col = 0; col < dt.Columns.Count; col++)
        {
            var cellValue = dt.Rows[row][col];
            workSheet.SetCellValue(row + 1, col, cellValue?.ToString() ?? "");
            var cell = workSheet.GetCellAt(row + 1, col);
            string bgColor = (row % 2 == 0) ? "#D6DCE5" : "#FFFFFF";
            cell.Style.SetBackgroundColor(bgColor);
            cell.Style.BottomBorder.Type = BorderType.Thin;
        }
    }
    // Save and write response for download
    MemoryStream stream = workBook.ToStream();
    using (SaveFileDialog saveFileDialog = new SaveFileDialog())
    {
        saveFileDialog.Filter = "Excel Files|*.xlsx";
        saveFileDialog.Title = "Save Excel File";
        saveFileDialog.FileName = "GridViewExport.xlsx";
        if (saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            using (FileStream fileStream = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write))
            {
                stream.WriteTo(fileStream);
            }
            MessageBox.Show("Export successful.", "Export", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
}
Imports IronXL
Imports IronXL.Styles
Imports System
Imports System.Data
Imports System.IO
Imports System.Windows.Forms

Private Sub btnExport_Click(sender As Object, e As EventArgs) Handles btnExport.Click
    Dim dt As DataTable = DirectCast(GridView1.DataSource, DataTable)
    Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
    Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
    ' Export header row with formatting
    For col As Integer = 0 To dt.Columns.Count - 1
        workSheet.SetCellValue(0, col, dt.Columns(col).ColumnName)
        Dim cell = workSheet.GetCellAt(0, col)
        cell.Style.Font.Bold = True
        cell.Style.SetBackgroundColor("#4472C4")
        cell.Style.Font.Color = "#FFFFFF"
        cell.Style.BottomBorder.Type = BorderType.Thin
    Next
    ' Export data rows with alternating row color
    For row As Integer = 0 To dt.Rows.Count - 1
        For col As Integer = 0 To dt.Columns.Count - 1
            Dim cellValue = dt.Rows(row)(col)
            workSheet.SetCellValue(row + 1, col, If(cellValue?.ToString(), ""))
            Dim cell = workSheet.GetCellAt(row + 1, col)
            Dim bgColor As String = If(row Mod 2 = 0, "#D6DCE5", "#FFFFFF")
            cell.Style.SetBackgroundColor(bgColor)
            cell.Style.BottomBorder.Type = BorderType.Thin
        Next
    Next
    ' Save and write response for download
    Dim stream As MemoryStream = workBook.ToStream()
    Using saveFileDialog As New SaveFileDialog()
        saveFileDialog.Filter = "Excel Files|*.xlsx"
        saveFileDialog.Title = "Save Excel File"
        saveFileDialog.FileName = "GridViewExport.xlsx"
        If saveFileDialog.ShowDialog() = DialogResult.OK Then
            Using fileStream As New FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write)
                stream.WriteTo(fileStream)
            End Using
            MessageBox.Show("Export successful.", "Export", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Using
End Sub
$vbLabelText   $csharpLabel

Dieses Beispiel erstellt einen Button-Click-Handler mit den Parametern object sender und EventArgs e . Der Code wandelt die DataSource Eigenschaft des GridView in eine DataTable um und ermöglicht so den Zugriff auf alle Werte in Ihrer Datentabelle. Die Methode WorkBook.Create initialisiert eine neue Excel-Datei, und DefaultWorkSheet gibt das aktive Arbeitsblatt zurück. Sie können den Blattnamen während des Exports über die Eigenschaft SheetName angeben.

Der DataGridView-Export greift über die HeaderText Eigenschaft auf Spaltenüberschriften zu. Die Zellenwerte stammen aus der Sammlung Cells und werden mithilfe von Zeilen- und Spaltenindizes ermittelt. Das Schlüsselwort var mit dem Null-Bedingungsoperator behandelt leere Zellen, indem es null in eine leere Zeichenkette umwandelt. Im Gegensatz zu ASP.NET, das Response verwendet, um die Datei für den Web-Download zu schreiben, speichert Windows Forms direkt im System. IronXL erstellt native XLSX- oder XLS-Dateien, die sich in MS Excel ohne Formatwarnungen öffnen lassen.

Ausgabe

GridView mit Formatierung nach Excel exportieren (C#, IronXL): Bild 1 – GridView-Ausgabe

GridView mit Formatierung nach Excel exportieren (C#, IronXL): Bild 2 – Excel-Ausgabe

GridView mit Formatierung nach Excel exportieren (C#, IronXL): Bild 3 – Meldungsausgabe

Abschluss

IronXL macht den Export von GridView nach Excel von einer Formatierungsherausforderung zu einem unkomplizierten Prozess. Die Bibliothek übernimmt die Gestaltung von Kopfzeilen, abwechselnde Zeilenfarben, bedingte Formatierung und Rahmen – ohne Abhängigkeiten von Office. Wir hoffen, dass Ihnen dieses Tutorial dabei hilft, professionelle Excel-Exporte in Ihren .NET-Anwendungen zu erstellen.

Starten Sie Ihre kostenlose Testversion , um GridView-Daten mit Formatierung zu exportieren, oder informieren Sie sich über Lizenzierungsoptionen für den Einsatz. Für Unterstützung und weitere Details konsultieren Sie bitte die Dokumentation .

Häufig gestellte Fragen

Wie kann ich GridView-Daten in C# nach Excel exportieren?

Sie können GridView-Daten in C# mit der IronXL-Bibliothek nach Excel exportieren. Damit können Sie programmatisch Excel-Dateien erstellen und Daten problemlos exportieren, einschließlich Formatierungen und Stile.

Warum sollte ich IronXL für den Export von GridView-Daten verwenden?

IronXL vereinfacht den Prozess des Exports von GridView-Daten mit seiner intuitiven API und ermöglicht es Ihnen, Formatierungen beizubehalten und Stile mühelos anzuwenden, was bei herkömmlichen Methoden eine Herausforderung sein kann.

Unterstützt IronXL die Formatierung beim Export von GridView nach Excel?

IronXL unterstützt verschiedene Formatierungsoptionen, einschließlich Schriftarten, Farben und Zellenformate, um sicherzustellen, dass Ihre exportierten Excel-Dateien professionell aussehen und das beabsichtigte Design beibehalten wird.

Kann ich das Aussehen von Excel-Dateien, die aus GridView-Daten generiert werden, anpassen?

IronXL bietet eine Reihe von Anpassungsoptionen für Excel-Dateien, mit denen Sie Zellstile, Schriftarten, Farben und vieles mehr an Ihre spezifischen Anforderungen anpassen können, wenn Sie aus GridView exportieren.

Ist es möglich, große GridView-Datensätze mit IronXL nach Excel zu exportieren?

IronXL ist in der Lage, große Datenmengen effizient zu verarbeiten, so dass Sie umfangreiche GridView-Daten ohne Leistungsprobleme nach Excel exportieren können.

Welche Vorteile hat der Export von GridView-Daten nach Excel mit IronXL gegenüber anderen Methoden?

IronXL bietet einen schlankeren und flexibleren Ansatz für den Export von GridView-Daten und bietet robuste Unterstützung für die Formatierung, Anpassung und den Umgang mit großen Datensätzen, wodurch es vielen anderen Methoden überlegen ist.

Wie kann ich die Datenintegrität beim Export von GridView nach Excel wahren?

IronXL stellt die Datenintegrität sicher, indem es die Datentypen und -formate während des Exportprozesses von GridView nach Excel genau konvertiert und beibehält.

Kann IronXL Daten aus GridView-Steuerungen mit komplexen Strukturen exportieren?

Ja, IronXL kann Daten aus GridView-Steuerungen mit komplexen Strukturen effektiv verarbeiten und exportieren, wobei die Hierarchie und Formatierung in der resultierenden Excel-Datei erhalten bleibt.

In welche Dateiformate kann IronXL GridView-Daten exportieren?

IronXL exportiert in erster Linie Daten in Excel-Formate wie XLSX, unterstützt aber auch andere Formate wie CSV und ist damit je nach Bedarf flexibel.

Gibt es Unterstützung für den Export von GridView mit bedingter Formatierung mit IronXL?

IronXL unterstützt die bedingte Formatierung, so dass Sie Regeln und Stile festlegen können, die sich beim Export von GridView-Daten nach Excel dynamisch an die Zellwerte anpassen.

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