Passer au contenu du pied de page
UTILISATION D'IRONXL

Exporter GridView vers Excel avec mise en forme C# à l'aide d'IronXL

Exportation des données d'un GridView vers Excel avec mise en forme à l'aide de C#

L'exportation des données GridView vers Excel tout en préservant les couleurs des cellules, les polices et la mise en forme est un défi courant dans le développement web ASP.NET, en particulier pour les applications destinées à un public mondial (en-US). Le processus d'exportation de GridView vers Excel avec mise en forme C# est géré sur le serveur, qui gère la liaison des données, le rendu et la mise en forme de la sortie. Les méthodes traditionnelles utilisant new HtmlTextWriter et new StringWriter pour écrire la sortie de contrôle produisent souvent des fichiers Excel avec des avertissements de format. Certains développeurs ont trouvé une solution de contournement en utilisant public override void VerifyRenderingInServerForm ; Vous devez ajouter l'événement VerifyRenderingInServerForm pour éviter les erreurs d'exécution pendant le processus d'exportation. Cependant, cette approche crée des fichiers HTML que MS Excel risque de ne pas afficher correctement. Pour exporter correctement vers Excel, le contrôle GridView doit être placé à l'intérieur d'une balise form avec l'attribut runat="server" . Par défaut, certaines options ou certains paramètres d'exportation peuvent s'appliquer, sauf modification explicite, comme l'option ExportAll ou le nombre maximal de lignes. Dans les implémentations C# et VB.NET, la logique d'exportation est généralement déclenchée par un événement de clic sur un bouton, où la signature du gestionnaire d'événements inclut des paramètres tels que object sender, EventArgs e en C# ou ByVal sender As Object, ByVal e As EventArgs en VB.NET.

IronXL offre une solution plus propre : la création de fichiers Excel natifs avec un contrôle total de la mise en forme, sans installation de Microsoft Office. Cet article explique comment exporter un GridView vers Excel dans les applications ASP.NET Web Forms et Windows Forms.

Introduction à l'exportation de données

L'exportation de données d'un GridView vers un fichier Excel est une fonctionnalité fondamentale de nombreuses applications ASP.NET et Windows Forms. Que vous créiez un tableau de bord de reporting ou que vous offriez aux utilisateurs la possibilité de télécharger des données pour une analyse hors ligne, la possibilité d'exporter le contenu de GridView vers une feuille Excel garantit que vos données sont accessibles et faciles à utiliser dans MS Excel. Ce processus consiste généralement à transférer les valeurs du contrôle GridView (lignes, colonnes et cellules) dans un fichier Excel structuré, tout en conservant la mise en forme et le style souhaités.

Une solution d'exportation vers Excel bien conçue va au-delà de la simple copie de données ; Il préserve également les styles de chaînes de caractères, applique une couleur alternée aux lignes pour une meilleure lisibilité et configure la disposition correcte du contenu afin que les utilisateurs puissent télécharger le fichier en pièce jointe. Les développeurs utilisent souvent des exemples de code qui montrent comment créer un fichier Excel par programmation, en tirant parti de méthodes telles que public override void VerifyRenderingInServerForm pour éviter les erreurs d'exécution dans ASP.NET, et Response.AddHeader pour spécifier le nom du fichier et le type de pièce jointe. Dans Windows Forms, le processus d'exportation est similaire, mais le fichier est enregistré directement sur le système au lieu d'être diffusé en continu vers le navigateur.

La mise en forme est un aspect essentiel d'une exportation professionnelle. En personnalisant la police, la couleur de fond et les bordures, vous pouvez vous assurer que la feuille Excel exportée correspond à l'apparence de votre application. En utilisant des objets comme new StringWriter et new HtmlTextWriter , ou des bibliothèques plus avancées, vous pouvez contrôler la sortie et la structure de votre fichier Excel. La gestion des erreurs est également essentielle : en interceptant les exceptions (telles que Exception ex ), vous pouvez garantir une expérience utilisateur optimale même en cas de problème lors de l'exportation.

Comment exporter un contrôle DataGridView Windows Forms vers un fichier Excel en conservant la mise en forme des cellules à l'aide d'un expéditeur d'objets

La méthode la plus fiable consiste à extraire la DataTable sous-jacente du GridView et à créer par programmation une feuille Excel stylisée. Cette approche évite les erreurs de formatage et offre un contrôle total sur les styles d'en-tête, l'alternance des couleurs de lignes et les bordures. Notez que si votre page utilise la pagination, désactivez-la avant l'exportation afin de capturer tous les enregistrements.

Les applications Windows Forms utilisent le contrôle DataGridView au lieu du contrôle GridView basé sur le Web. Le processus d'exportation vers Excel suit le même schéma : extraire les valeurs des cellules à partir des lignes et des collections de cellules, puis appliquer la mise en forme.

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);
        }
    }
}
$vbLabelText   $csharpLabel

Cet exemple crée un gestionnaire de clic de bouton avec object sender et des paramètres EventArgs e . Le code convertit la propriété DataSource du GridView en DataTable, permettant ainsi d'accéder à toutes les valeurs de votre tableau de données. La méthode WorkBook.Create initialise un nouveau fichier Excel, et DefaultWorkSheet renvoie la feuille de calcul active. Vous pouvez spécifier le nom de la feuille via la propriété SheetName lors de l'exportation.

L'exportation DataGridView accède aux en-têtes de colonnes via la propriété HeaderText . Les valeurs des cellules proviennent de la collection Cells en utilisant les indices de ligne et de colonne. Le mot-clé var avec l'opérateur conditionnel nul gère les cellules vides en convertissant null en une chaîne vide. Contrairement à ASP.NET qui utilise Response pour écrire le fichier destiné au téléchargement web, Windows Forms enregistre directement dans le système. IronXL crée des fichiers au format XLSX ou XLS natifs qui s'ouvrent dans MS Excel sans avertissements de format.

Sortie

Exporter un GridView vers Excel avec mise en forme C# à l'aide d'IronXL : Image 1 - Sortie du GridView

Exporter un GridView vers Excel avec mise en forme C# à l'aide d'IronXL : Image 2 - Sortie Excel

Exporter un GridView vers Excel avec mise en forme C# à l'aide d'IronXL : Image 3 - Message d'affichage

Conclusion

IronXL transforme l'exportation de GridView vers Excel, qui représentait un défi de mise en forme, en un processus simple. La bibliothèque gère le style des en-têtes, l'alternance des couleurs des lignes, la mise en forme conditionnelle et les bordures, sans dépendance à Office. Nous espérons que ce tutoriel vous aidera à créer des exportations Excel professionnelles dans vos applications .NET.

Démarrez votre essai gratuit pour exporter les données GridView avec mise en forme, ou explorez les options de licence pour le déploiement. Pour obtenir de l'aide et des détails, veuillez vous référer à la documentation .

Questions Fréquemment Posées

Comment exporter les données d'un GridView vers Excel en C# ?

Vous pouvez exporter les données de GridView vers Excel en C# grâce à la bibliothèque IronXL. Celle-ci vous permet de créer facilement des fichiers Excel par programmation et d'exporter des données en conservant la mise en forme et les styles.

Pourquoi utiliser IronXL pour exporter des données GridView ?

IronXL simplifie le processus d'exportation des données GridView grâce à son API intuitive, vous permettant de conserver la mise en forme et d'appliquer des styles sans effort, ce qui peut s'avérer difficile avec les méthodes traditionnelles.

IronXL prend-il en charge la mise en forme lors de l'exportation de GridView vers Excel ?

Oui, IronXL prend en charge diverses options de mise en forme, notamment les polices, les couleurs et les styles de cellules, garantissant ainsi que vos fichiers Excel exportés aient une apparence professionnelle et conservent la conception prévue.

Puis-je personnaliser l'apparence des fichiers Excel générés à partir des données de GridView ?

IronXL offre une gamme d'options de personnalisation pour les fichiers Excel, vous permettant d'ajuster les styles de cellules, les polices, les couleurs et plus encore pour répondre à vos besoins spécifiques lors de l'exportation depuis GridView.

Est-il possible d'exporter de grands ensembles de données GridView vers Excel à l'aide d'IronXL ?

IronXL est capable de gérer efficacement de grands ensembles de données, vous permettant ainsi d'exporter des données GridView volumineuses vers Excel sans problème de performance.

Quels sont les avantages de l'exportation des données GridView vers Excel à l'aide d'IronXL par rapport à d'autres méthodes ?

IronXL offre une approche plus simple et plus flexible pour l'exportation des données GridView, offrant une prise en charge robuste de la mise en forme, de la personnalisation et de la gestion des grands ensembles de données, ce qui la rend supérieure à de nombreuses autres méthodes.

Comment puis-je préserver l'intégrité des données lors de l'exportation d'un GridView vers Excel ?

IronXL garantit l'intégrité des données en convertissant et en préservant avec précision les types et les formats de données lors du processus d'exportation de GridView vers Excel.

IronXL peut-il exporter des données à partir de contrôles GridView présentant des structures complexes ?

Oui, IronXL peut gérer et exporter efficacement les données des contrôles GridView présentant des structures complexes, en conservant la hiérarchie et la mise en forme dans le fichier Excel résultant.

Dans quels formats de fichiers IronXL peut-il exporter les données GridView ?

IronXL exporte principalement les données vers des formats Excel tels que XLSX, mais il prend également en charge d'autres formats comme CSV, offrant ainsi une grande flexibilité en fonction de vos besoins.

Est-il possible d'exporter un GridView avec une mise en forme conditionnelle à l'aide d'IronXL ?

IronXL prend en charge la mise en forme conditionnelle, ce qui vous permet de définir des règles et des styles qui s'ajustent dynamiquement en fonction des valeurs des cellules lors de l'exportation des données GridView 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