Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Wie exportiert man ein GridView-Steuerelement mit Formatierung in C# nach Excel?

Das Exportieren von GridView-Daten nach Excel unter Beibehaltung von Farben, Schriftarten, abwechselnden Zeilenhintergründen und Rahmen ist eine Anforderung, die in fast jeder datengetriebenen ASP.NET oder Windows Forms-Anwendung auftritt. Der traditionelle Ansatz – die Verwendung von HtmlTextWriter und StringWriter zum Rendern des Steuerelements als HTML – erzeugt Dateien, die in Excel Formatwarnungen enthalten und für Benutzer stillschweigend fehlschlagen. IronXL löst dieses Problem, indem es native XLSX-Dateien vollständig in C# generiert, ohne Abhängigkeit von Microsoft Office, wodurch Sie die präzise Kontrolle über jeden Zellenstil erhalten.

Wie installiert man die Bibliothek in einem .NET -Projekt?

Installieren Sie IronXL über NuGet , bevor Sie Exportcode schreiben. Öffnen Sie die Paket-Manager-Konsole und führen Sie aus:

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

IronXL unterstützt .NET 8, .NET 9 und .NET 10 sowie .NET Framework 4.6.2 und höher. Fügen Sie nach der Installation die folgenden using-Anweisungen zu jeder Datei hinzu, die Excel-Operationen durchführt:

using IronXL;
using IronXl.Styles;
using IronXL;
using IronXl.Styles;
$vbLabelText   $csharpLabel

Es ist keine zusätzliche Laufzeit oder Office-Interoperabilität erforderlich. Die Bibliothek schreibt native XLSX-Binärdateien, die sich problemlos in Microsoft Excel, LibreOffice Calc und Google Sheets öffnen lassen.

Wie exportiert man ein Windows Forms DataGridView mit Zellformatierung nach Excel?

Windows Forms-Anwendungen verwenden das DataGridView-Steuerelement anstelle des webbasierten GridView-Steuerelements. Das Exportmuster ist in beiden Fällen gleich: Werte aus Zeilen und Zellen extrahieren, eine IronXL Arbeitsmappe erstellen, Stile anwenden und dann das Ergebnis speichern oder streamen.

Der zuverlässigste Ansatz besteht darin, die DataSource-Eigenschaft des Steuerelements in eine DataTable-Eigenschaft umzuwandeln, um das Durchlaufen der visuellen Zeilen zu vermeiden, die möglicherweise gefiltert oder paginiert sind:

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

DataTable dt = (DataTable)dataGridView1.DataSource;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.DefaultWorkSheet;

// Header row -- bold, blue background, white text
for (int col = 0; col < dt.Columns.Count; col++)
{
    sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
    var cell = sheet.GetCellAt(0, col);
    cell.Style.Font.Bold = true;
    cell.Style.SetBackgroundColor("#4472C4");
    cell.Style.Font.Color = "#FFFFFF";
    cell.Style.BottomBorder.Type = BorderType.Thin;
}

// Data rows -- alternating row color
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        string value = dt.Rows[row][col]?.ToString() ?? string.Empty;
        sheet.SetCellValue(row + 1, col, value);

        var cell = sheet.GetCellAt(row + 1, col);
        cell.Style.SetBackgroundColor(row % 2 == 0 ? "#D6DCE5" : "#FFFFFF");
        cell.Style.BottomBorder.Type = BorderType.Thin;
    }
}

// Save via dialog
using var saveDialog = new SaveFileDialog
{
    Filter = "Excel Files|*.xlsx",
    FileName = "GridViewExport.xlsx"
};

if (saveDialog.ShowDialog() == DialogResult.OK)
{
    workBook.SaveAs(saveDialog.FileName);
    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;

DataTable dt = (DataTable)dataGridView1.DataSource;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.DefaultWorkSheet;

// Header row -- bold, blue background, white text
for (int col = 0; col < dt.Columns.Count; col++)
{
    sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
    var cell = sheet.GetCellAt(0, col);
    cell.Style.Font.Bold = true;
    cell.Style.SetBackgroundColor("#4472C4");
    cell.Style.Font.Color = "#FFFFFF";
    cell.Style.BottomBorder.Type = BorderType.Thin;
}

// Data rows -- alternating row color
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        string value = dt.Rows[row][col]?.ToString() ?? string.Empty;
        sheet.SetCellValue(row + 1, col, value);

        var cell = sheet.GetCellAt(row + 1, col);
        cell.Style.SetBackgroundColor(row % 2 == 0 ? "#D6DCE5" : "#FFFFFF");
        cell.Style.BottomBorder.Type = BorderType.Thin;
    }
}

// Save via dialog
using var saveDialog = new SaveFileDialog
{
    Filter = "Excel Files|*.xlsx",
    FileName = "GridViewExport.xlsx"
};

if (saveDialog.ShowDialog() == DialogResult.OK)
{
    workBook.SaveAs(saveDialog.FileName);
    MessageBox.Show("Export successful.", "Export",
        MessageBoxButtons.OK, MessageBoxIcon.Information);
}
$vbLabelText   $csharpLabel

WorkBook.Create initialisiert eine neue Arbeitsmappe im Arbeitsspeicher im XLSX-Format. DefaultWorkSheet gibt das erste Tabellenblatt zurück, das Sie vor dem Speichern über seine Eigenschaft Name umbenennen können. SetCellValue akzeptiert Zeichenketten, ganze Zahlen, Gleitkommazahlen und DateTime Werte -- IronXL wählt den richtigen Zelltyp automatisch aus.

Das abwechselnde Zeilenfarbmuster -- row % 2 == 0 wählt #D6DCE5 aus, andernfalls #FFFFFF -- spiegelt den in Excel integrierten Tabellenstil mit gestaffelten Zeilen wider. Sie können jede beliebige sechsstellige Hexadezimalfarbe verwenden, die zum Designsystem Ihrer Anwendung passt.

Ausgabebilder

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# mit IronXL): Bild 3 – Meldungsausgabe

Wie exportiert man ein ASP.NET GridView nach Excel und streamt die Datei an den Browser?

Webanwendungen benötigen einen anderen Bereitstellungsmechanismus. Anstatt direkt in das Dateisystem zu schreiben, serialisieren Sie die Arbeitsmappe in ein MemoryStream und schreiben sie mit den korrekten Headern in die HTTP-Antwort, damit der Browser sie als Dateidownload behandelt.

Wichtiger Vorbereitungsschritt für paginierte GridViews: Deaktivieren Sie die Paginierung (AllowPaging = false) und binden Sie die Datenquelle vor dem Export neu, damit jeder Datensatz – und nicht nur die aktuelle Seite – erfasst wird.

using IronXL;
using IronXl.Styles;
using System;
using System.Data;
using System.IO;
using System.Web.UI;

// Disable paging so all rows are captured
GridView1.AllowPaging = false;
GridView1.DataBind();

DataTable dt = (DataTable)GridView1.DataSource;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.DefaultWorkSheet;

// Header row
for (int col = 0; col < dt.Columns.Count; col++)
{
    sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
    var cell = sheet.GetCellAt(0, col);
    cell.Style.Font.Bold = true;
    cell.Style.SetBackgroundColor("#2E75B6");
    cell.Style.Font.Color = "#FFFFFF";
    cell.Style.HorizontalAlignment = HorizontalAlignment.Center;
    cell.Style.BottomBorder.Type = BorderType.Medium;
}

// Data rows
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        sheet.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);
        var cell = sheet.GetCellAt(row + 1, col);
        cell.Style.SetBackgroundColor(row % 2 == 0 ? "#DEEAF1" : "#FFFFFF");
        cell.Style.BottomBorder.Type = BorderType.Thin;
        cell.Style.LeftBorder.Type = BorderType.Thin;
        cell.Style.RightBorder.Type = BorderType.Thin;
    }
}

// Stream to browser
byte[] fileBytes = workBook.ToByteArray();
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=GridViewExport.xlsx");
Response.BinaryWrite(fileBytes);
Response.End();
using IronXL;
using IronXl.Styles;
using System;
using System.Data;
using System.IO;
using System.Web.UI;

// Disable paging so all rows are captured
GridView1.AllowPaging = false;
GridView1.DataBind();

DataTable dt = (DataTable)GridView1.DataSource;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workBook.DefaultWorkSheet;

// Header row
for (int col = 0; col < dt.Columns.Count; col++)
{
    sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
    var cell = sheet.GetCellAt(0, col);
    cell.Style.Font.Bold = true;
    cell.Style.SetBackgroundColor("#2E75B6");
    cell.Style.Font.Color = "#FFFFFF";
    cell.Style.HorizontalAlignment = HorizontalAlignment.Center;
    cell.Style.BottomBorder.Type = BorderType.Medium;
}

// Data rows
for (int row = 0; row < dt.Rows.Count; row++)
{
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        sheet.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);
        var cell = sheet.GetCellAt(row + 1, col);
        cell.Style.SetBackgroundColor(row % 2 == 0 ? "#DEEAF1" : "#FFFFFF");
        cell.Style.BottomBorder.Type = BorderType.Thin;
        cell.Style.LeftBorder.Type = BorderType.Thin;
        cell.Style.RightBorder.Type = BorderType.Thin;
    }
}

// Stream to browser
byte[] fileBytes = workBook.ToByteArray();
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=GridViewExport.xlsx");
Response.BinaryWrite(fileBytes);
Response.End();
$vbLabelText   $csharpLabel

Response.AddHeader mit content-disposition: attachment erzwingt einen Dateidownload-Dialog in allen modernen Browsern. Der MIME-Typ application/vnd.openxmlformats-officedocument.spreadsheetml.sheet ist der registrierte Typ für XLSX-Dateien und verhindert, dass der Browser versucht, den Binärinhalt inline anzuzeigen.

Bei ASP.NET Core Anwendungen ersetzen Sie Response.BinaryWrite durch File(fileBytes, contentType, fileName) in einer Controller-Aktion -- die Logik zur Erstellung der Arbeitsmappe ist identisch.

Wie wendet man bedingte Formatierung basierend auf Zellwerten an?

Die bedingte Formatierung hebt Zellen hervor, die bestimmte Kriterien erfüllen – beispielsweise werden überfällige Daten rot markiert oder Werte unterhalb eines Schwellenwerts orange dargestellt. IronXL wendet bedingte Formatierungen auf Zellenebene während der Erstellung der Arbeitsmappe an:

// Assume "DueDate" is column index 3 and "Amount" is column index 4
DateTime today = DateTime.Today;

for (int row = 0; row < dt.Rows.Count; row++)
{
    // Highlight past-due dates
    if (dt.Columns.Contains("DueDate") && dt.Rows[row]["DueDate"] != DBNull.Value)
    {
        DateTime dueDate = Convert.ToDateTime(dt.Rows[row]["DueDate"]);
        var dueDateCell = sheet.GetCellAt(row + 1, 3);
        if (dueDate < today)
        {
            dueDateCell.Style.SetBackgroundColor("#FF0000");
            dueDateCell.Style.Font.Color = "#FFFFFF";
            dueDateCell.Style.Font.Bold = true;
        }
    }

    // Highlight amounts below threshold
    if (dt.Columns.Contains("Amount") && dt.Rows[row]["Amount"] != DBNull.Value)
    {
        decimal amount = Convert.ToDecimal(dt.Rows[row]["Amount"]);
        var amountCell = sheet.GetCellAt(row + 1, 4);
        if (amount < 100m)
        {
            amountCell.Style.SetBackgroundColor("#FFC000");
        }
    }
}
// Assume "DueDate" is column index 3 and "Amount" is column index 4
DateTime today = DateTime.Today;

for (int row = 0; row < dt.Rows.Count; row++)
{
    // Highlight past-due dates
    if (dt.Columns.Contains("DueDate") && dt.Rows[row]["DueDate"] != DBNull.Value)
    {
        DateTime dueDate = Convert.ToDateTime(dt.Rows[row]["DueDate"]);
        var dueDateCell = sheet.GetCellAt(row + 1, 3);
        if (dueDate < today)
        {
            dueDateCell.Style.SetBackgroundColor("#FF0000");
            dueDateCell.Style.Font.Color = "#FFFFFF";
            dueDateCell.Style.Font.Bold = true;
        }
    }

    // Highlight amounts below threshold
    if (dt.Columns.Contains("Amount") && dt.Rows[row]["Amount"] != DBNull.Value)
    {
        decimal amount = Convert.ToDecimal(dt.Rows[row]["Amount"]);
        var amountCell = sheet.GetCellAt(row + 1, 4);
        if (amount < 100m)
        {
            amountCell.Style.SetBackgroundColor("#FFC000");
        }
    }
}
$vbLabelText   $csharpLabel

Dieses Muster ist modular erweiterbar – fügen Sie beliebig viele bedingte Prüfungen hinzu, je nach Ihren Berichtsanforderungen. Da IronXL zellenweise arbeitet, können Sie bedingte Formatierungen mit der Logik für abwechselnde Zeilenfarben kombinieren, indem Sie den bedingten Stil nach dem Basiszeilenstil anwenden.

Wie legt man Spaltenbreiten fest und fixiert die Kopfzeile?

Ein professionell formatierter Excel-Export beinhaltet angemessene Spaltenbreiten und eine fixierte Kopfzeile, sodass die Spaltennamen auch beim Scrollen durch große Datensätze sichtbar bleiben.

IronXL stellt die Spaltenbreite über den Spaltenzugriff WorkSheet und die Kopfzeilenfixierung über die Methodee FreezeRows bereit:

// Auto-size columns 0 through the last column index
for (int col = 0; col < dt.Columns.Count; col++)
{
    // Set column width in character units (1 unit ≈ one default character width)
    sheet.SetColumnWidth(col, 20);
}

// Freeze the first row (index 0) so the header stays visible while scrolling
sheet.FreezeRows(1);

// Optionally set row height for the header (in points)
sheet.SetRowHeight(0, 20);
// Auto-size columns 0 through the last column index
for (int col = 0; col < dt.Columns.Count; col++)
{
    // Set column width in character units (1 unit ≈ one default character width)
    sheet.SetColumnWidth(col, 20);
}

// Freeze the first row (index 0) so the header stays visible while scrolling
sheet.FreezeRows(1);

// Optionally set row height for the header (in points)
sheet.SetRowHeight(0, 20);
$vbLabelText   $csharpLabel

Für den Produktiveinsatz empfiehlt es sich, die Breite anhand der maximalen Zeichenanzahl in jeder Spalte zu berechnen, anstatt einen festen Wert zu verwenden. Iteriere die Werte der Spalte DataTable, messe die Zeichenkettenlänge und multipliziere sie mit einem Zeichenbreitenfaktor, der der gewählten Schriftgröße entspricht.

Sie können Excel-Zellen auch mithilfe von C# unabhängig von der Zeilenbandlogik eine Hintergrundfarbe zuweisen, um eine feinere Formatierung zu ermöglichen.

Wie exportiert man eine DataTable nach Excel ohne ein GridView-Steuerelement?

Viele .NET Anwendungen füllen Daten über Serviceaufrufe oder Datenbankabfragen und speichern sie in einem DataTable, ohne sie jemals an ein UI-Steuerelement zu binden. Sie können einen DataTable direkt nach Excel exportieren, ohne vorher ein GridView-Objekt zu instanziieren.

Dies ist der effizienteste Weg für Hintergrundprozesse, geplante Berichte und API-Endpunkte, die Excel-Dateien auf dem Server erzeugen müssen:

using IronXL;
using IronXl.Styles;
using System.Data;

public static byte[] DataTableToExcelBytes(DataTable dt, string sheetName = "Report")
{
    WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet sheet = workBook.CreateWorkSheet(sheetName);

    // Header
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
        var cell = sheet.GetCellAt(0, col);
        cell.Style.Font.Bold = true;
        cell.Style.SetBackgroundColor("#4472C4");
        cell.Style.Font.Color = "#FFFFFF";
    }

    // Data
    for (int row = 0; row < dt.Rows.Count; row++)
    {
        for (int col = 0; col < dt.Columns.Count; col++)
        {
            sheet.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);
        }
    }

    return workBook.ToByteArray();
}
using IronXL;
using IronXl.Styles;
using System.Data;

public static byte[] DataTableToExcelBytes(DataTable dt, string sheetName = "Report")
{
    WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet sheet = workBook.CreateWorkSheet(sheetName);

    // Header
    for (int col = 0; col < dt.Columns.Count; col++)
    {
        sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
        var cell = sheet.GetCellAt(0, col);
        cell.Style.Font.Bold = true;
        cell.Style.SetBackgroundColor("#4472C4");
        cell.Style.Font.Color = "#FFFFFF";
    }

    // Data
    for (int row = 0; row < dt.Rows.Count; row++)
    {
        for (int col = 0; col < dt.Columns.Count; col++)
        {
            sheet.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);
        }
    }

    return workBook.ToByteArray();
}
$vbLabelText   $csharpLabel

Diese Methodee gibt ein byte[] zurück, das Sie auf die Festplatte schreiben, von einem API-Endpunkt streamen, an eine E-Mail anhängen oder im Speicher zwischenspeichern können. Verwandte Techniken finden Sie im Leitfaden zum Exportieren einer DataTable nach Excel und im Tutorial zur schnellsten Methodee zum Exportieren einer DataTable nach Excel .

Wie geht man mit großen Datensätzen und der Performance um?

Der Export von Zehntausenden von Zeilen nach Excel erfordert besondere Aufmerksamkeit bei der Speicherverwaltung. Das Erstellen eines neuen zellartigen Objekts für jede Zelle in einem großen Raster ist der häufigste Leistungsengpass. Verwenden Sie Stildefinitionen nach Möglichkeit wieder, indem Sie Stile für Bereichsobjekte anstatt für einzelne Zellen festlegen:

IronXL -Exportansätze nach Datensatzgröße
Datensatzgröße Empfohlene Vorgehensweise Wichtiger Aspekt
Bis zu 5.000 Zeilen Zellweise Styling-Schleife Einfacher Code, vernachlässigbarer Overhead
5.000 – 50.000 Zeilen Anwendungsstil auf Bereichsebene Reduziert die Objektzuweisungen erheblich
Mehr als 50.000 Zeilen Direkter DataTable-Export, minimales Styling Minimieren Sie die Operationen pro Zelle; nutzen Sie Streaming, falls verfügbar.

Bei paginierten GridViews muss vor dem Exportieren immer AllowPaging = false gesetzt und neu gebunden werden. Durch die Paginierung wird die Anzahl der sichtbaren Zeilen im Steuerelement begrenzt. Daher erfasst ein paginierter Export nur die aktuelle Seite und nicht den gesamten Datensatz – eine häufige Ursache für Fehler bei unvollständigen Exporten.

Sie können auch den Leitfaden zum Exportieren einer Liste von Objekten nach Excel in C# einsehen, um Muster zu finden, die mit stark typisierten Sammlungen anstelle von untypisierten DataTable Zeilen funktionieren.

Wie exportiert man ein GridView in ASP.NET Core oder Blazor?

ASP.NET Core und Blazor Anwendungen verfügen nicht über ein Web Forms-Steuerelement, aber die zugrunde liegende Herausforderung beim Datenexport ist dieselbe: Man nimmt eine Sammlung von Objekten oder eine Liste, erstellt eine formatierte Arbeitsmappe und liefert eine Datei. Der Code zur Erstellung der Arbeitsmappe ist identisch; Nur der Verabreichungsmechanismus ändert sich.

In einer Blazor Anwendung einen Dateidownload über JavaScript Interop auslösen:

// In a Blazor component or service
using IronXL;
using System.Data;
using Microsoft.JSInterop;

public async Task ExportToExcelAsync(DataTable dt, IJSRuntime js)
{
    WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet sheet = workBook.DefaultWorkSheet;

    for (int col = 0; col < dt.Columns.Count; col++)
    {
        sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
        var cell = sheet.GetCellAt(0, col);
        cell.Style.Font.Bold = true;
        cell.Style.SetBackgroundColor("#4472C4");
        cell.Style.Font.Color = "#FFFFFF";
    }

    for (int row = 0; row < dt.Rows.Count; row++)
    {
        for (int col = 0; col < dt.Columns.Count; col++)
        {
            sheet.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);
        }
    }

    byte[] fileBytes = workBook.ToByteArray();
    string base64 = Convert.ToBase64String(fileBytes);
    await js.InvokeVoidAsync("downloadFileFromBase64", base64, "GridViewExport.xlsx",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
}
// In a Blazor component or service
using IronXL;
using System.Data;
using Microsoft.JSInterop;

public async Task ExportToExcelAsync(DataTable dt, IJSRuntime js)
{
    WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet sheet = workBook.DefaultWorkSheet;

    for (int col = 0; col < dt.Columns.Count; col++)
    {
        sheet.SetCellValue(0, col, dt.Columns[col].ColumnName);
        var cell = sheet.GetCellAt(0, col);
        cell.Style.Font.Bold = true;
        cell.Style.SetBackgroundColor("#4472C4");
        cell.Style.Font.Color = "#FFFFFF";
    }

    for (int row = 0; row < dt.Rows.Count; row++)
    {
        for (int col = 0; col < dt.Columns.Count; col++)
        {
            sheet.SetCellValue(row + 1, col, dt.Rows[row][col]?.ToString() ?? string.Empty);
        }
    }

    byte[] fileBytes = workBook.ToByteArray();
    string base64 = Convert.ToBase64String(fileBytes);
    await js.InvokeVoidAsync("downloadFileFromBase64", base64, "GridViewExport.xlsx",
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
}
$vbLabelText   $csharpLabel

Die vollständige Anleitung zum Blazor -Downloadmuster finden Sie im Tutorial "Blazor -Export nach Excel" . Für einen ASP.NET Core Controller-Ansatz siehe das ASP.NET Core -Export-Excel-Tutorial .

Schriftart- und Rahmenoptionen

IronXL stellt detaillierte Steuerungsmöglichkeiten für Schriftart und Rahmen über das Style-Objekt in jeder Zelle bereit. Die vollständige Palette der Excel-Schriftstile in C# umfasst Fettdruck, Kursivschrift, Unterstreichung, Größe und Farbe. Die über BorderType verfügbaren Rahmenarten umfassen dünn, mittel, dick, gestrichelt, gepunktet, doppelt und verschiedene Haarlinienvarianten.

Für zusammengeführte Kopfzeilen oder Zusammenfassungsfußzeilen unterstützt IronXL auch das Zusammenführen von Zellen in Excel mit C# - nützlich, wenn Sie eine einzelne Titelzelle benötigen, die sich über mehrere Spalten oberhalb Ihrer Datentabelle erstreckt.

Informationen zum automatischen Anpassen der Spaltenbreiten nach dem Einfügen von Daten finden Sie im Leitfaden "Automatische Zellenanpassung in Excel mit C#" für die empfohlene Vorgehensweise.

Warum erzeugt eine native Excel-Bibliothek sauberere Exporte als HtmlTextWriter?

Die traditionelle ASP.NET -Exporttechnik – das Überschreiben von VerifyRenderingInServerForm, das Erstellen von StringWriter und HtmlTextWriter und das Schreiben des gerenderten Steuerelements in die Antwort – erzeugt ein HTML-Dokument mit der Erweiterung .xls. Microsoft Excel öffnet solche Dateien mit einer Kompatibilitätswarnung, da die Datei nicht im Excel-Binär- oder OOXML-Format vorliegt. Die Stile sind auf Inline-CSS beschränkt, das Excel nur teilweise interpretiert. Bedingte Formatierung ist nicht möglich. Benutzer von Nicht-Windows-Plattformen oder von LibreOffice erhalten eine verminderte Ausgabe.

IronXL schreibt das Open XML Spreadsheet-Format (OOXML) direkt. Das Ergebnis ist eine korrekte .xlsx-Datei – identisch mit der von Excel selbst erstellten – die sich unter macOS in Excel, LibreOffice, Google Sheets und Numbers ohne Warnungen öffnen lässt. Die Formatierung wird als Tabellenstile und nicht als HTML-Attribute kodiert, sodass sie auch bei wiederholtem Datenaustausch und plattformübergreifender Anzeige erhalten bleibt.

Vergleich der Exportmethoden für ASP.NET GridView
Methode Dateiformat Formatwarnungen Vollständige Stilunterstützung Büro erforderlich
HtmlTextWriter + StringWriter HTML, das sich als XLS ausgibt Ja Nein Nein
Office Interop (COM) Native XLS/XLSX Nein Ja Ja
IronXL Native XLSX/XLS Nein Ja Nein

In der offiziellen Dokumentation von Microsoft zum Open XML SDK wird das zugrunde liegende Format erläutert, das IronXL erzeugt. Die von ECMA International gepflegte OOXML-Spezifikation definiert den Standard, der die anwendungsübergreifende Kompatibilität gewährleistet. Die Dokumentation zum ASP.NET GridView-Steuerelement auf Microsoft Docs beschreibt das Steuerelementmodell, aus dem die oben genannten Exportmuster lesen.

Was sind Ihre nächsten Schritte?

Sie verfügen nun über die notwendigen Muster, um GridView- und DataGridView-Daten mithilfe von IronXL in korrekt formatierte XLSX-Dateien zu exportieren – und zwar für die Bereitstellungsmodelle Windows Forms, ASP.NET Web Forms, ASP.NET Core und Blazor .

Um noch weiter zu gehen:

Häufig gestellte Fragen

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

Mit der IronXL -Bibliothek können Sie GridView-Daten in C# nach Excel exportieren. Sie ermöglicht die programmgesteuerte Erstellung von Excel-Dateien und den einfachen Datenexport inklusive Formatierung und Stilen.

Warum sollte ich IronXL zum Exportieren von GridView-Daten verwenden?

IronXL vereinfacht den Export von GridView-Daten durch seine intuitive API, die es Ihnen ermöglicht, Formatierungen beizubehalten und Stile mühelos anzuwenden, was mit herkömmlichen Methoden schwierig sein kann.

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

Ja, IronXL unterstützt verschiedene Formatierungsoptionen, darunter Schriftarten, Farben und Zellstile, sodass Ihre exportierten Excel-Dateien professionell aussehen und das gewünschte Design beibehalten.

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

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

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

IronXL ist in der Lage, große Datensätze effizient zu verarbeiten, sodass Sie umfangreiche GridView-Daten ohne Leistungsprobleme nach Excel exportieren können.

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

IronXL bietet einen effizienteren und flexibleren Ansatz für den Export von GridView-Daten und bietet robuste Unterstützung für Formatierung, Anpassung und die Verarbeitung großer Datensätze, wodurch es vielen anderen Methoden überlegen ist.

Wie kann ich die Datenintegrität beim Exportieren von GridView nach Excel gewährleisten?

IronXL gewährleistet die Datenintegrität, indem es Datentypen und -formate während des Exportvorgangs von GridView nach Excel präzise konvertiert und beibehält.

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

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

In welche Dateiformate kann IronXL GridView-Daten exportieren?

IronXL exportiert Daten primär in Excel-Formate wie XLSX, unterstützt aber auch andere Formate wie CSV und bietet so Flexibilität je nach Bedarf.

Wird der Export von GridView mit bedingter Formatierung mithilfe von IronXL unterstützt?

IronXL unterstützt bedingte Formatierung, sodass 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

Iron Support Team

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