Zum Fußzeileninhalt springen
IRONXL VERWENDEN

C# DataGridView Export nach Excel mit Formatierung: Der vollständige Leitfaden

C# DataGridView Export nach Excel mit Formatierung: Der vollständige Leitfaden: Bild 1 - C# DataGridView Export nach Excel mit Formatierung

Der Export von DataGridView-Daten in eine Excel-Datei ist eine häufige Anforderung in Windows Forms-Anwendungen. Egal, ob es um die Erstellung von Berichten oder die Übertragung von Daten zur Analyse geht, Entwickler benötigen eine zuverlässige Methode zum Export von DataGridView-Inhalten unter Beibehaltung der Formatierung. In diesem Artikel zeigen wir Ihnen, wie Sie DataGridView mit IronXL nach Excel exportieren können. IronXL ist ein moderner Ansatz, der perfekt funktioniert, ohne dass Sie Microsoft Excel installieren müssen.

Starten Sie jetzt mit IronXL.
green arrow pointer

Wie richte ich ein Windows Forms Projekt für den DataGridView Export ein?

Herkömmliche Ansätze erfordern das Hinzufügen eines Verweises auf die Microsoft Excel Object Library über die Registerkarte COM. Diese Methode hat jedoch erhebliche Nachteile: Sie setzt voraus, dass Microsoft Excel auf jedem Rechner installiert ist, beinhaltet komplexe Muster für die Freigabe von Objekten mit private void releaseobject-Methoden und ist bei großen Excel-Dateien nicht sehr leistungsfähig.

IronXL beseitigt diese Probleme vollständig. In Visual Studio erfolgt die Installation einfach über den NuGet-Paketmanager - es ist nicht erforderlich, das Menü Referenz hinzufügen auszuwählen oder zur Registerkarte COM zu navigieren. Die Bibliothek verarbeitet alle Datenexportvorgänge ohne Abhängigkeiten von Microsoft Office.

Um loszulegen, erstellen Sie ein neues Windows Forms-Projekt in Visual Studio und fügen Sie die folgenden Namespaces zu Ihrem Formular hinzu:

using IronXL;
using System.Data;
using IronXL;
using System.Data;
$vbLabelText   $csharpLabel

Fügen Sie ein DataGridView-Steuerelement und eine Schaltfläche zu Ihrem Formular hinzu. Das DataGridView-Steuerelement zeigt die Daten vor dem Export an, während die Schaltfläche den DataGridView-Exportvorgang auslöst.

Wie kann ich Daten in ein DataGridView-Steuerelement laden?

Das Ereignis "Form Load" ist ideal, um Ihre DataGridView mit Daten zu füllen. Das folgende Codebeispiel demonstriert das Binden einer DataTable an das DataGridView-Steuerelement:

private void Form1_Load(object sender, EventArgs e)
{
    // Create DataTable with sample data
    DataTable dt = new DataTable();
    dt.Columns.Add("ProductID", typeof(int));
    dt.Columns.Add("ProductName", typeof(string));
    dt.Columns.Add("Price", typeof(decimal));
    dt.Columns.Add("Stock", typeof(int));
    // Add rows with values
    dt.Rows.Add(1, "Laptop", 999.99, 50);
    dt.Rows.Add(2, "Mouse", 29.99, 200);
    dt.Rows.Add(3, "Keyboard", 79.99, 150);
    dt.Rows.Add(4, "Monitor", 349.99, 75);
    dataGridView1.DataSource = dt;
}
private void Form1_Load(object sender, EventArgs e)
{
    // Create DataTable with sample data
    DataTable dt = new DataTable();
    dt.Columns.Add("ProductID", typeof(int));
    dt.Columns.Add("ProductName", typeof(string));
    dt.Columns.Add("Price", typeof(decimal));
    dt.Columns.Add("Stock", typeof(int));
    // Add rows with values
    dt.Rows.Add(1, "Laptop", 999.99, 50);
    dt.Rows.Add(2, "Mouse", 29.99, 200);
    dt.Rows.Add(3, "Keyboard", 79.99, 150);
    dt.Rows.Add(4, "Monitor", 349.99, 75);
    dataGridView1.DataSource = dt;
}
$vbLabelText   $csharpLabel

Besetzte Datentabelle

C# DataGridView Export nach Excel mit Formatierung: Der vollständige Leitfaden: Bild 2 - UI für unser Formular

Dieser Code erstellt eine DataTable dt mit vier Spalten und verwendet dann die Add-Methode, um die DataGridView-Zeilen mit Beispielwerten zu füllen. Das DataGridView-Steuerelement akzeptiert DataTable als Datenquelle, die Daten in einem tabellarischen Format anzeigt. Die erste Spalte enthält Integer-IDs, während die anderen Spalten String- und Dezimalwerte enthalten.

Wie exportiere ich DataGridView-Daten in eine Excel-Datei?

Der Ereignis-Handler für das Klicken einer Schaltfläche enthält die zentrale Exportlogik. Der Ansatz von IronXL unterscheidet sich von herkömmlichen Methoden; DataGridView-Inhalte können über einen DataTable-Zwischenschritt direkt in eine Excel-Datei exportiert werden:

private void btnExport_Click(object sender, EventArgs e)
{
    try
    {
        // Convert DataGridView to DataTable
        DataTable dt = new DataTable();
        foreach (DataGridViewColumn column in dataGridView1.Columns)
            dt.Columns.Add(column.HeaderText);
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            if (!row.IsNewRow)
            {
                DataRow dataRow = dt.NewRow();
                for (int i = 0; i < dataGridView1.Columns.Count; i++)
                    dataRow[i] = row.Cells[i].Value;
                dt.Rows.Add(dataRow);
            }
        }
        // Create workbook and export
        WorkBook workbook = WorkBook.Create();
        WorkSheet worksheet = workbook.DefaultWorkSheet;
        worksheet.LoadFromDataTable(dt, true);
        workbook.SaveAs("C:\\Reports\\Export.xlsx");
        MessageBox.Show("Export complete!");
    }
    catch (Exception ex)
    {
        MessageBox.Show($"Error: {ex.Message}");
    }
}
private void btnExport_Click(object sender, EventArgs e)
{
    try
    {
        // Convert DataGridView to DataTable
        DataTable dt = new DataTable();
        foreach (DataGridViewColumn column in dataGridView1.Columns)
            dt.Columns.Add(column.HeaderText);
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            if (!row.IsNewRow)
            {
                DataRow dataRow = dt.NewRow();
                for (int i = 0; i < dataGridView1.Columns.Count; i++)
                    dataRow[i] = row.Cells[i].Value;
                dt.Rows.Add(dataRow);
            }
        }
        // Create workbook and export
        WorkBook workbook = WorkBook.Create();
        WorkSheet worksheet = workbook.DefaultWorkSheet;
        worksheet.LoadFromDataTable(dt, true);
        workbook.SaveAs("C:\\Reports\\Export.xlsx");
        MessageBox.Show("Export complete!");
    }
    catch (Exception ex)
    {
        MessageBox.Show($"Error: {ex.Message}");
    }
}
$vbLabelText   $csharpLabel

DataGridView zu Excel Ausgabe

C# DataGridView Export nach Excel mit Formatierung: The Complete Guide: Bild 3 - Generierte Excel-Datei

Dieser Button-Click-Event-Handler mit den Parametern object sender, EventArgs e iteriert durch alle Daten in den Zeilen und Spalten der DataGridView und erstellt eine DataTable. Die Methode LoadFromDataTable akzeptiert DataTable und füllt das Arbeitsblatt auf. Das Arbeitsmappenobjekt wird dann an dem angegebenen Ort gespeichert. IronXL kann auch große Excel-Dateien effizient exportieren, ohne die bei Microsoft Interop üblichen Speicherprobleme.

Wie kann ich Formatierungen auf die exportierte Excel-Datei anwenden?

Die Erstellung einer formatierten Excel-Datei erfordert die Gestaltung der Kopfzeile und der Zellen. Dieses Beispiel demonstriert die Anwendung der Hintergrundfarbe für die Kopfzeile und das Styling der alternierenden Zeilen:

private void ExportWithFormatting(object sender, EventArgs e)
{
    WorkBook workbook = WorkBook.Create();
    WorkSheet worksheet = workbook.DefaultWorkSheet;
    // Add header row
    string[] headers = { "ID", "Name", "Price", "Stock" };
    for (int col = 0; col < headers.Length; col++)
    {
        worksheet.SetCellValue(0, col, headers[col]);
        worksheet[$"{(char)('A' + col)}1"].Style.Font.Bold = true;
        worksheet[$"{(char)('A' + col)}1"].Style.SetBackgroundColor("#4472C4");
    }
    // Add data with alternating row colors
    int rowIndex = 1;
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        if (row.IsNewRow) continue;
        for (int col = 0; col < dataGridView1.Columns.Count; col++)
        {
            worksheet.SetCellValue(rowIndex, col, row.Cells[col].Value?.ToString());
        }
        // Apply alternating background colors
        if (rowIndex % 2 == 0)
        {
            var range = worksheet[$"A{rowIndex + 1}:D{rowIndex + 1}"];
            range.Style.SetBackgroundColor("#D6DCE5");
        }
        rowIndex++;
    }
    workbook.SaveAs("C:\\Reports\\FormattedExport.xlsx");
}
private void ExportWithFormatting(object sender, EventArgs e)
{
    WorkBook workbook = WorkBook.Create();
    WorkSheet worksheet = workbook.DefaultWorkSheet;
    // Add header row
    string[] headers = { "ID", "Name", "Price", "Stock" };
    for (int col = 0; col < headers.Length; col++)
    {
        worksheet.SetCellValue(0, col, headers[col]);
        worksheet[$"{(char)('A' + col)}1"].Style.Font.Bold = true;
        worksheet[$"{(char)('A' + col)}1"].Style.SetBackgroundColor("#4472C4");
    }
    // Add data with alternating row colors
    int rowIndex = 1;
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        if (row.IsNewRow) continue;
        for (int col = 0; col < dataGridView1.Columns.Count; col++)
        {
            worksheet.SetCellValue(rowIndex, col, row.Cells[col].Value?.ToString());
        }
        // Apply alternating background colors
        if (rowIndex % 2 == 0)
        {
            var range = worksheet[$"A{rowIndex + 1}:D{rowIndex + 1}"];
            range.Style.SetBackgroundColor("#D6DCE5");
        }
        rowIndex++;
    }
    workbook.SaveAs("C:\\Reports\\FormattedExport.xlsx");
}
$vbLabelText   $csharpLabel

Formatierte Excel-Datei-Ausgabe

C# DataGridView Export nach Excel mit Formatierung: Der vollständige Leitfaden: Bild 4 - Ausgabe für die erzeugte formatierte Excel-Datei

In diesem C# DataGridView-Export nach Excel mit Formatierungsbeispiel wird die erste Zeile als gestylte Kopfzeile mit fetter Schrift und Hintergrundfarben festgelegt. Der Code wird zur besseren Lesbarkeit mit alternierenden Zeilen gestaltet. Mit der umfassenden Styling-API von IronXL können Sie Zellen mit verschiedenen Schriftarten, Füllmustern und Rahmenkonfigurationen anpassen.

Abschluss

Das Exportieren von DataGridView nach Excel in Windows Forms-Anwendungen wird mit IronXL.Excel ganz einfach. Im Gegensatz zum traditionellen Ansatz der Microsoft Excel Object Library, der COM-Tab-Referenzen und komplexen Objektbereinigungscode erfordert, bietet IronXL eine saubere, moderne API zur Erstellung von Excel-Dateien mit Formatierung.

Die Bibliothek beherrscht alles von grundlegenden Datenexporten nach Excel bis hin zu anspruchsvollen, formatierten Excel-Dateien, einschließlich der Gestaltung der Hintergrundfarbe von Kopfzeilen und alternierenden Zeilen. Für Anwendungen, die große Excel-Dateien verarbeiten, bietet IronXL eine hervorragende Leistung, ohne dass eine Installation von Microsoft Excel erforderlich ist.

Sind Sie bereit, Ihren DataGridView zu Excel Workflow zu optimieren? Starten Sie noch heute Ihre kostenlose Testversion, oder informieren Sie sich über IronXL-Lizenzierungsoptionen für den Produktionseinsatz.

Häufig gestellte Fragen

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

Mit IronXL können Sie ganz einfach DataGridView-Daten in C# in Excel-Dateien exportieren, indem Sie die leistungsstarken Funktionen für Datenmanipulation und -export nutzen.

Welche Formatierungsoptionen sind beim Export von DataGridView nach Excel verfügbar?

IronXL ermöglicht die Anwendung verschiedener Formatierungsoptionen, wie z.B. Kopfzeilengestaltung und alternierende Zeilenfarben, beim Export von DataGridView nach Excel.

Ist es möglich, DataGridView-Daten in Windows Forms-Anwendungen nach Excel zu exportieren?

Ja, Sie können DataGridView-Daten in Windows Forms-Anwendungen nach Excel exportieren, indem Sie IronXL verwenden, das zu diesem Zweck eine nahtlose Integration und Funktionalität bietet.

Kann ich beim Exportieren von DataGridView nach Excel Kopfzeilen gestalten?

IronXL ermöglicht die Gestaltung von Kopfzeilen mit benutzerdefinierten Schriftarten, Farben und anderen Formatierungsoptionen beim Exportieren von DataGridView-Daten nach Excel.

Wie wende ich wechselnde Zeilenfarben in Excel an, wenn ich aus DataGridView exportiere?

IronXL ermöglicht es Ihnen, beim Exportieren von Daten aus DataGridView wechselnde Zeilenfarben auf Excel-Blätter anzuwenden, um die visuelle Attraktivität und Lesbarkeit der Daten zu verbessern.

Benötige ich spezielle Bibliotheken, um DataGridView in C# nach Excel zu exportieren?

Ja, die Verwendung einer Bibliothek wie IronXL vereinfacht den Prozess des Exports von DataGridView nach Excel in C# und bietet robuste Tools für die Datenverarbeitung und -formatierung.

Welche Vorteile bietet IronXL für den Export von DataGridView nach Excel?

IronXL bietet Vorteile wie Benutzerfreundlichkeit, umfassende Formatierungsoptionen und Kompatibilität mit Windows Forms, was es ideal für den Export von DataGridView nach Excel macht.

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