Passer au contenu du pied de page
UTILISATION D'IRONXL

C# DataGridView Export to Excel with Formatting : Le guide complet

C# DataGridView Export to Excel with Formatting : Le guide complet : Image 1 - C# DataGridView Export to Excel with Formatting

L'exportation des données de DataGridView vers un fichier Excel est une exigence courante dans les applications Windows Forms. Qu'il s'agisse de générer des rapports ou de transférer des données à des fins d'analyse, les développeurs ont besoin d'une méthode fiable pour exporter le contenu de DataGridView tout en préservant le formatage. Dans cet article, nous vous montrerons comment exporter DataGridView vers Excel à l'aide d'IronXL, une approche moderne qui fonctionne parfaitement sans nécessiter l'installation de Microsoft Excel.

Commencez avec IronXL maintenant.
green arrow pointer

Comment configurer un projet Windows Forms pour l'exportation de DataGridView?

Les approches traditionnelles nécessitent l'ajout d'une référence via l'onglet COM à la bibliothèque d'objets de Microsoft Excel. Cependant, cette méthode présente des inconvénients importants : elle nécessite l'installation de Microsoft Excel sur chaque machine, implique des modèles complexes de libération d'objets avec des méthodes private void releaseobject, et n'est pas très performante avec des fichiers Excel volumineux.

IronXL élimine totalement ces problèmes. Dans Visual Studio, il suffit d'installer via NuGet Package Manager - pas besoin de sélectionner le menu Ajouter une référence ou de naviguer jusqu'à l'onglet COM. La bibliothèque prend en charge toutes les opérations d'exportation de données sans dépendre de Microsoft Office.

Pour commencer, créez un nouveau projet Windows Forms dans Visual Studio, puis ajoutez les espaces de noms suivants à votre formulaire :

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

Ajoutez un contrôle DataGridView et un bouton à votre formulaire. Le contrôle DataGridView affichera les données avant l'exportation, tandis que le bouton déclenche l'opération d'exportation DataGridView.

Comment charger des données dans un contrôle DataGridView?

L'événement Form Load est idéal pour remplir votre DataGridView avec des données. L'exemple de code suivant démontre la liaison d'un DataTable au contrôle DataGridView :

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

Datable peuplée

C# DataGridView Export to Excel with Formatting : Le guide complet : Image 2 - Interface utilisateur pour notre formulaire

Ce code crée un DataTable dt avec quatre colonnes, puis utilise la méthode Add pour remplir les lignes du DataGridView avec des valeurs d'échantillonnage. Le contrôle DataGridView accepte DataTable comme source de données, ce qui permet d'afficher les données dans un format tabulaire. La première colonne contient des identifiants entiers, tandis que les autres colonnes contiennent des chaînes de caractères et des valeurs décimales.

Comment exporter des données DataGridView vers un fichier Excel?

Le gestionnaire d'événement du clic sur le bouton contient la logique d'exportation de base. L'approche d'IronXL diffère des méthodes traditionnelles ; le contenu de DataGridView peut être exporté directement vers un fichier Excel en passant par une étape intermédiaire DataTable :

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 vers Excel Output

C# DataGridView Export to Excel with Formatting : Le guide complet : Image 3 - Fichier Excel généré

Ce gestionnaire d'événement de clic de bouton avec les paramètres objet sender, EventArgs e parcourt toutes les données dans les lignes et les colonnes du DataGridView, construisant un DataTable. La méthode LoadFromDataTable accepte DataTable et remplit la feuille de calcul. L'objet classeur est ensuite enregistré à l'emplacement spécifié. IronXL peut également exporter efficacement de gros fichiers Excel sans les problèmes de mémoire fréquents avec Microsoft Interop.

Comment puis-je appliquer un formatage au fichier Excel exporté?

La création d'un fichier Excel formaté nécessite de styliser la ligne d'en-tête et les cellules. Cet exemple démontre l'application de la couleur d'arrière-plan de la ligne d'en-tête et du style des lignes alternées :

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

Sortie d'un fichier Excel formaté

C# DataGridView Export to Excel with Formatting : Le guide complet : Image 4 - Sortie du fichier Excel formaté généré

Cet exemple d'exportation C# DataGridView vers Excel avec mise en forme définit la première ligne comme une ligne d'en-tête stylisée avec une police en gras et des couleurs d'arrière-plan. Le code applique un style de lignes alternées pour une meilleure lisibilité. Vous pouvez personnaliser les cellules avec différents styles de police, motifs de remplissage et configurations de bordure à l'aide de l'API de stylisme complète d'IronXL styling API.

Conclusion

L'exportation de DataGridView vers Excel dans les applications Windows Forms devient simple avec IronXL. Contrairement à l'approche traditionnelle de la bibliothèque d'objets Microsoft Excel nécessitant des références d'onglets COM et un code de nettoyage d'objets complexe, IronXL fournit une API propre et moderne pour la création de fichiers Excel avec mise en forme.

La bibliothèque gère tout, des exportations de données de base vers Excel à la génération de fichiers Excel sophistiqués et formatés, y compris le style de couleur d'arrière-plan de la ligne d'en-tête et les lignes alternées. Pour les applications traitant des fichiers Excel volumineux, IronXL offre des performances supérieures sans nécessiter l'installation de Microsoft Excel.

Prêt à rationaliser votre flux de travail DataGridView vers Excel ? Démarrez votre essai gratuit dès aujourd'hui, ou explorez les options de licence IronXL pour un déploiement en production.

Questions Fréquemment Posées

Comment puis-je exporter les données de DataGridView vers Excel en C# ?

En utilisant IronXL, vous pouvez facilement exporter des données DataGridView vers des fichiers Excel en C# en tirant parti de ses puissantes fonctionnalités de manipulation et d'exportation de données.

Quelles sont les options de formatage disponibles lors de l'exportation de DataGridView vers Excel ?

IronXL vous permet d'appliquer diverses options de mise en forme, telles que le style d'en-tête et l'alternance des couleurs de ligne, lors de l'exportation de DataGridView vers Excel.

Est-il possible d'exporter des données DataGridView vers Excel dans les applications Windows Forms ?

Oui, vous pouvez exporter des données DataGridView vers Excel dans les applications Windows Forms à l'aide d'IronXL, qui offre une intégration et une fonctionnalité transparentes à cet effet.

Puis-je styliser les en-têtes lors de l'exportation de DataGridView vers Excel ?

IronXL vous permet de styliser les en-têtes avec des polices, des couleurs et d'autres options de formatage personnalisées lors de l'exportation de données DataGridView vers Excel.

Comment appliquer des couleurs de ligne alternées dans Excel lors de l'exportation à partir de DataGridView ?

IronXL vous permet d'appliquer des couleurs de ligne alternées aux feuilles Excel lors de l'exportation de données à partir de DataGridView, améliorant ainsi l'attrait visuel et la lisibilité des données.

Ai-je besoin de bibliothèques spéciales pour exporter DataGridView vers Excel en C# ?

Oui, l'utilisation d'une bibliothèque comme IronXL simplifie le processus d'exportation de DataGridView vers Excel en C#, en fournissant des outils robustes pour la manipulation et le formatage des données.

Quels sont les avantages de l'utilisation d'IronXL pour l'exportation de DataGridView vers Excel ?

IronXL offre des avantages tels que la facilité d'utilisation, des options de formatage complètes et la compatibilité avec Windows Forms, ce qui le rend idéal pour l'exportation de DataGridView vers Excel.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite