Passer au contenu du pied de page
UTILISATION D'IRONXL

Exporter des données de DataGridView vers Excel en VB .NET 2010 à l'aide d'IronXL.Excel

Exporter des données de DataGridView vers Excel dans les applications VB.NET Windows Forms

L'exportation de données d'une DataGridView vers un fichier Excel est une exigence courante dans les applications VB.NET Windows Forms. Qu'il s'agisse de créer des outils de reporting, des systèmes de gestion de données ou des applications commerciales qui extraient des données d'une base de données, les développeurs ont besoin d'une méthode fiable pour transférer des données de grille dans des feuilles de calcul. Cet article montre comment exporter DataGridView vers Excel en utilisant IronXL, une bibliothèque .NET moderne qui élimine la nécessité d'installer Microsoft Office.

Introduction à Windows Forms

Windows Forms est une bibliothèque d'interface utilisateur graphique (GUI) fondamentale dans le .NET Framework de Microsoft, conçue pour créer des applications de bureau robustes avec des expériences utilisateur riches et interactives. En tant qu'élément central de l'écosystème .NET, Windows Forms offre aux développeurs un ensemble complet de contrôles, notamment le contrôle polyvalent DataGridView, qui est largement utilisé pour afficher, modifier et gérer des données dans un format tabulaire.

L'une des exigences les plus courantes dans les applications Windows Forms est la capacité d'exporter des données du contrôle DataGridView vers des formats de fichiers externes, tels que des fichiers Excel (xlsx) ou des fichiers CSV. Cette fonctionnalité est essentielle pour des scénarios tels que la création de rapports, l'analyse de données et le partage d'informations avec d'autres systèmes ou utilisateurs. Que vous travailliez avec un petit ensemble de données ou un grand tableau provenant d'une base de données, le fait de disposer d'une méthode fiable pour exporter vos données peut considérablement améliorer la convivialité et la valeur de votre application.

Il existe plusieurs approches pour exporter des données DataGridView dans Windows Forms. Les méthodes traditionnelles impliquent souvent l'automatisation de Microsoft Office, où les développeurs utilisent l'objet d'application Excel pour créer un nouveau classeur, ajouter une feuille de calcul et écrire par programme chaque ligne et chaque colonne de la DataGridView dans le fichier Excel. Cette méthode offre un contrôle granulaire sur la sortie, vous permettant de personnaliser la ligne d'en-tête, les en-têtes de colonne et le formatage des cellules. Cependant, elle nécessite l'installation de Microsoft Office sur la machine cible, ce qui peut constituer une limitation pour certains déploiements.

Par ailleurs, des bibliothèques tierces modernes telles que ClosedXML, Syncfusion ou IronXL.Excel (présentées dans cet article) offrent des API rationalisées pour l'exportation de données vers des fichiers Excel sans avoir recours à Microsoft Office. Ces bibliothèques simplifient le processus, permettant aux développeurs de générer rapidement des fichiers XLSX avec un formatage personnalisé, des lignes d'en-tête stylisées et des colonnes correctement typées. Ils tendent également à offrir de meilleures performances et un déploiement plus facile, en particulier dans les environnements de serveurs ou de nuages où Office n'est pas toujours disponible.

Comment les développeurs peuvent-ils configurer le projet et installer la bibliothèque?

Avant d'écrire le code d'exportation, configurez un projet VB.NET Windows Forms dans Visual Studio. Ce tutoriel cible .NET 8, bien qu'IronXL prenne en charge .NET Framework 4.6.2 et toutes les versions modernes de .NET. Notez que cette approche fonctionne pour les applications créées à l'origine en VB.NET 2010 ou une version ultérieure.

Prérequis:

  • Visual Studio 2022 ou version ultérieure
  • sDK .NET 8 installé
  • Un projet Windows Forms App avec un contrôle DataGridView

Installer IronXL via le gestionnaire de paquets NuGet:

Ouvrez la console du gestionnaire de paquets dans Visual Studio et exécutez :

Install-Package IronXL.Excel

Exportation de données de DataGridView vers Excel en VB .NET 2010 à l'aide d'IronXL : Image 1 - Installation

Vous pouvez également cliquer avec le bouton droit de la souris sur le projet dans l'Explorateur de solutions, sélectionner "Gérer les packages NuGet", rechercher IronXL.Excel et cliquer sur Installer. Cette bibliothèque remplace les références Microsoft Office Interop.

Une fois installé, importez l'espace de noms IronXL for .NET en tête de tout fichier VB.NET dans lequel la fonctionnalité Excel est nécessaire :

Imports IronXL
Imports System.Data
Imports IronXL
Imports System.Data
VB .NET

Comment les développeurs peuvent-ils remplir un DataGridView avec des données d'échantillonnage?

Pour cet exemple, créez un formulaire Windows simple avec un contrôle DataGridView et un bouton. Le DataGridView affiche les enregistrements des employés stockés dans un objet DataTable qui sera exporté vers un fichier Excel.

Ajoutez le code suivant à l'événement Load du formulaire pour remplir la grille avec des échantillons de données provenant d'une structure de tableau :

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim dt As New DataTable()
    ' Define columns with appropriate data type
    dt.Columns.Add("EmployeeID", GetType(Integer))
    dt.Columns.Add("Name", GetType(String))
    dt.Columns.Add("Department", GetType(String))
    dt.Columns.Add("Salary", GetType(Decimal))
    ' Add sample rows of data
    dt.Rows.Add(101, "Sarah Johnson", "Engineering", 85000)
    dt.Rows.Add(102, "Michael Chen", "Marketing", 72000)
    dt.Rows.Add(103, "Emily Davis", "Finance", 91000)
    dt.Rows.Add(104, "James Wilson", "Engineering", 78000)
    ' Set DataGridView data source
    DataGridView1.DataSource = dt
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim dt As New DataTable()
    ' Define columns with appropriate data type
    dt.Columns.Add("EmployeeID", GetType(Integer))
    dt.Columns.Add("Name", GetType(String))
    dt.Columns.Add("Department", GetType(String))
    dt.Columns.Add("Salary", GetType(Decimal))
    ' Add sample rows of data
    dt.Rows.Add(101, "Sarah Johnson", "Engineering", 85000)
    dt.Rows.Add(102, "Michael Chen", "Marketing", 72000)
    dt.Rows.Add(103, "Emily Davis", "Finance", 91000)
    dt.Rows.Add(104, "James Wilson", "Engineering", 78000)
    ' Set DataGridView data source
    DataGridView1.DataSource = dt
End Sub
VB .NET

Ce code crée un DataTable avec quatre colonnes représentant des informations typiques sur les employés. Chaque colonne est définie avec son type de données à l'aide de GetType() pour les valeurs Integer, String et Decimal. La propriété DataSource lie ces données directement au contrôle DataGridView, remplissant automatiquement la grille lorsque l'utilisateur ouvre le formulaire. Dans les applications de production, ces données peuvent être chargées à partir d'une base de données ou d'un tableau.

Sortie

Exportation de données de DataGridView vers Excel en VB .NET 2010 à l'aide d'IronXL : Image 2 - Sortie DataGridView

Comment les développeurs peuvent-ils exporter des données DataGridView vers un fichier Excel avec des en-têtes ? La fonction d'exportation fait partie du gestionnaire d'événement de clic du bouton. Le code suivant parcourt les colonnes et les lignes du DataGridView à l'aide d'une boucle, en écrivant la valeur de chaque cellule dans les cellules correspondantes de la feuille de calcul Excel. ```vb Private Sub btnExport_Click(sender As Object, e As EventArgs) ' Create a new Excel workbook object and worksheet Dim workbook As WorkBook = WorkBook.Create() Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Write column headers to the header row (row index 0), integer dim Dim colIndex As Integer For colIndex = 0 To DataGridView1.Columns.Count - 1 sheet.SetCellValue(0, colIndex, DataGridView1.Columns(colIndex).HeaderText) Next ' Write data rows starting from the second row Dim rowIndex As Integer For rowIndex = 0 To DataGridView1.Rows.Count - 1 For colIndex = 0 To DataGridView1.Columns.Count - 1 Dim cellValue = DataGridView1.Rows(rowIndex).Cells(colIndex).Value If cellValue IsNot Nothing Then sheet.SetCellValue(rowIndex + 1, colIndex, cellValue.ToString()) End If Next Next ' Save the workbook as an XLSX file with specified filename Dim outputPath As String = "EmployeeData.xlsx" workbook.SaveAs(outputPath) MessageBox.Show("Export solved! File created successfully.", "Success") End Sub ``` Le code commence par créer un nouvel objet [WorkBook](/csharp/excel/object-reference/api/IronXL.WorkBook.html), qui représente l'intégralité du fichier Excel. La propriété `DefaultWorkSheet` permet d'accéder à la feuille par défaut sur laquelle les données seront écrites. ### Sortie [Exportation de données de DataGridView vers Excel en VB .NET 2010 à l'aide d'IronXL : Image 3 - Sortie Excel](/static-assets/excel/blog/export-datagridview-vb-net-2010/export-datagridview-vb-net-2010-3.webp) La première boucle extrait les en-têtes de colonne de la grille de données et les place dans la ligne d'en-tête (index zéro) de la feuille Excel. La propriété `HeaderText` contient le nom d'affichage de chaque colonne. L'utilisation de `Dim colIndex As Integer` déclare la variable utilisée comme compteur de boucle. Les boucles imbriquées gèrent le transfert de données proprement dit. Pour chaque ligne du DataGridView, le code parcourt toutes les colonnes à l'aide de la propriété `Count`. La méthode récupère la valeur de la cellule et utilise `ToString()` pour la convertir en `String` avant de l'écrire sur la feuille de calcul. Le décalage `rowIndex + 1` garantit que les données commencent sous la ligne d'en-tête. Un contrôle de nullité permet d'éviter les erreurs lorsque les cellules ne contiennent aucune valeur. Enfin, la méthode `SaveAs` écrit le classeur sur le disque au format XLSX au chemin spécifié. IronXL prend en charge tout le conditionnement XML complexe que requiert le format [Open XML](https://learn.microsoft.com/en-us/office/open-xml/open-xml-sdk). La ligne `End Sub` ferme la fonction de gestion d'événement.

Comment les développeurs peuvent-ils préserver le formatage des cellules dans le fichier exporté ? L'exportation de base transfère les données, mais les applications professionnelles nécessitent souvent de formater le fichier Excel de sortie. L'API de style d'IronXL permet de formater les cellules pour qu'elles correspondent à l'apparence de la grille de données ou pour l'améliorer. ```vb Private Sub ExportWithFormatting() Dim workbook As WorkBook = WorkBook.Create() Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Write and style column headers on the first line Dim colIndex As Integer For colIndex = 0 To DataGridView1.Columns.Count - 1 sheet.SetCellValue(0, colIndex, DataGridView1.Columns(colIndex).HeaderText) Next ' Find Salary column index (case-insensitive) Dim salaryColIndex As Integer = -1 For i As Integer = 0 To DataGridView1.Columns.Count - 1 If String.Equals(DataGridView1.Columns(i).HeaderText, "Salary", StringComparison.OrdinalIgnoreCase) Then salaryColIndex = i Exit For End If Next ' Apply header row styling with format options Dim headerRange = sheet.GetRange("A1:D1") headerRange.Style.Font.Bold = True headerRange.Style.SetBackgroundColor("#4472C4") headerRange.Style.Font.SetColor("#FFFFFF") ' Write data rows and ensure Salary cells are numeric For rowIndex As Integer = 0 To DataGridView1.Rows.Count - 1 If Not DataGridView1.Rows(rowIndex).IsNewRow Then For colIndex = 0 To DataGridView1.Columns.Count - 1 Dim cellValue = DataGridView1.Rows(rowIndex).Cells(colIndex).Value Dim targetRow = rowIndex + 1 If cellValue Is Nothing Then Continue For End If If colIndex = salaryColIndex Then ' Ensure numeric value for salary column Dim decValue As Decimal If TypeOf cellValue Is Decimal OrElse TypeOf cellValue Is Double OrElse TypeOf cellValue Is Integer OrElse TypeOf cellValue Is Single Then decValue = Convert.ToDecimal(cellValue) sheet.SetCellValue(targetRow, colIndex, decValue) Else ' Try parse using current culture, then invariant If Decimal.TryParse(cellValue.ToString(), Globalization.NumberStyles.Number, Globalization.CultureInfo.CurrentCulture, decValue) _ OrElse Decimal.TryParse(cellValue.ToString(), Globalization.NumberStyles.Number, Globalization.CultureInfo.InvariantCulture, decValue) Then sheet.SetCellValue(targetRow, colIndex, decValue) Else ' fallback to text if parsing fails sheet.SetCellValue(targetRow, colIndex, cellValue.ToString()) End If End If Else ' Non-salary: preserve numeric types, otherwise write as text If TypeOf cellValue Is Decimal OrElse Type Of cellValue Is Double Or Else Type Of cellValue Is Integer Or Else Type Of cellValue Is Single Then sheet.SetCellValue(targetRow, colIndex, cellValue) Else sheet.SetCellValue(targetRow, colIndex, cellValue.ToString()) End If End If Next End If Next ' Format salary column as currency Dim salaryColumn = sheet.GetRange("D2:D5") salaryColumn.FormatString = "$#,##0" Dim filename As String = "FormattedEmployeeData.xlsx" workbook.SaveAs(filename) End Sub ``` Cette version améliorée applique une mise en forme professionnelle au fichier Excel exporté. La méthode `GetRange` sélectionne les cellules en utilisant la notation Excel standard (A1:D1 pour la ligne d'en-tête). La propriété `Style` expose les options de format, y compris le poids de la police, la couleur d'arrière-plan et la couleur du texte, spécifiés sous forme de valeurs hexagonales. ### Sortie [Exportation de données de DataGridView vers Excel en VB .NET 2010 à l'aide d'IronXL : Image 4 - Sortie Excel formatée](/static-assets/excel/blog/export-datagridview-vb-net-2010/export-datagridview-vb-net-2010-4.webp) La colonne des salaires est formatée en fonction de la devise grâce à la propriété `Format`, qui accepte les chaînes de format de nombre Excel. Lorsque l'utilisateur ouvre le fichier de sortie dans MS Excel, les valeurs de la colonne D s'affichent avec des signes de dollar et des séparateurs de milliers. Cette page n'est qu'un exemple des possibilités de formatage disponibles. ## Pourquoi choisir une bibliothèque moderne plutôt qu'Office Interop? Les solutions VB.NET traditionnelles pour l'exportation d'Excel reposant sur `Microsoft.Office.Interop.Excel` nécessitent l'installation de Microsoft Office sur chaque système exécutant l'application. Le code utilisant des modèles `Dim xlApp` crée des défis de déploiement, en particulier pour les environnements de serveur et les applications en nuage, où il n'est pas possible d'installer MS Excel. IronXL fonctionne de manière autonome - aucune installation d'Office n'est nécessaire. Les applications se déploient en tant qu'unités autonomes sans dépendances externes. En outre, IronXL évite les fuites de mémoire et les problèmes de nettoyage des objets COM qui affligent les solutions basées sur Interop, ce qui se traduit par des applications plus stables. La bibliothèque prend également en charge l'exportation CSV si vous avez besoin de ce format au lieu de XLSX. J'espère que cet article a répondu à votre question sur la manière d'exporter des données DataGridView. Pour obtenir une aide supplémentaire, renvoyez à la [documentation de dépannage](/csharp/excel/troubleshooting/apply-a-license-key-in-ironxl/) ou contactez l'assistance si vous rencontrez des erreurs lors de la mise en œuvre. ## Conclusion L'exportation de données DataGridView vers Excel en VB.NET devient simple avec les bons outils. IronXL fournit une API propre et moderne qui gère la création de classeurs, l'écriture de données dans les cellules et le formatage sans nécessiter l'installation de Microsoft Office. Que vous ayez besoin d'écrire de simples tableaux de données ou des classeurs au format complexe, cette bibliothèque offre les fonctionnalités dont vous avez besoin. [Téléchargez IronXL](download-modal) pour commencer dès aujourd'hui à créer une fonctionnalité d'exportation Excel dans les applications VB.NET Windows Forms. [Les options de licence](/csharp/excel/licensing/) sont disponibles pour les équipes de toutes tailles, avec un [essai gratuit](trial-license) pour commencer.

Questions Fréquemment Posées

Quel est le moyen le plus simple d'exporter des données DataGridView vers Excel en VB.NET ?

En utilisant IronXL, vous pouvez facilement exporter des données DataGridView vers Excel en VB.NET avec un minimum de code. IronXL simplifie le processus en permettant la manipulation directe des fichiers Excel sans avoir besoin d'Excel installé sur le serveur.

Comment puis-je utiliser IronXL for .NET pour gérer des fichiers Excel dans une application VB.NET ?

IronXL fournit une API simple pour gérer les fichiers Excel, permettant aux applications VB.NET de lire, d'éditer et d'exporter des documents Excel en toute transparence. Il prend en charge différents formats de fichiers Excel et offre des fonctionnalités robustes.

IronXL prend-il en charge l'exportation de grands ensembles de données DataGridView vers Excel ?

Oui, IronXL est conçu pour traiter efficacement les grands ensembles de données, ce qui le rend idéal pour exporter des données DataGridView étendues vers Excel sans goulot d'étranglement au niveau des performances.

IronXL for .NET NET est-il compatible avec VB.NET 2010 pour les opérations sur Excel ?

IronXL est entièrement compatible avec VB.NET 2010, ce qui permet aux développeurs d'intégrer des fonctionnalités Excel avancées dans leurs applications sans mettre à niveau leur environnement de développement.

Quels sont les avantages de l'utilisation d'IronXL for .NET pour les exportations Excel en VB.NET ?

IronXL offre de nombreux avantages, notamment la facilité d'utilisation, la prise en charge de plusieurs formats Excel, l'absence d'installation d'Excel sur le serveur et de puissantes capacités de manipulation des données.

IronXL peut-il exporter des données DataGridView vers différents formats Excel ?

Oui, IronXL prend en charge l'exportation des données DataGridView vers différents formats Excel, notamment XLSX, XLS et CSV, ce qui garantit la compatibilité avec les différentes exigences et applications des utilisateurs.

Qu'est-ce qui fait d'IronXL un meilleur choix par rapport aux autres bibliothèques Excel pour VB.NET ?

IronXL se distingue par sa simplicité, son efficacité en termes de performances et son ensemble complet de fonctionnalités, ce qui en fait un choix supérieur à d'autres bibliothèques pour les opérations Excel dans VB.NET.

Comment puis-je commencer à utiliser IronXL for .NET dans mon projet VB.NET ?

Pour commencer à utiliser IronXL dans votre projet VB.NET, vous pouvez l'installer via le gestionnaire de paquets NuGet et vous référer à la documentation officielle pour obtenir des conseils détaillés sur l'intégration et l'utilisation.

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