Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment exporter un jeu de données vers Excel avec VB .NET : Guide complet avec IronXL

L'exportation d'un jeu de données vers Excel en VB.NET permet aux développeurs de transformer des données structurées en fichiers tableur professionnels. Que vous travailliez avec une grille de données dans une application de bureau ou que vous extrayiez des informations d'une base de données système, IronXL fournit une API intuitive qui simplifie ce flux de travail. Il vous permet de créer, de modifier et de manipuler des fichiers Excel, et d'exporter des données sans nécessiter l'installation de Microsoft Office sur l'ordinateur de l'utilisateur.

Pourquoi exporter des données avec IronXL ?

Cette bibliothèque est la solution idéale pour les développeurs qui ont besoin de gérer efficacement de grands ensembles de données. Contrairement à l'interopérabilité COM standard, IronXL ne subit aucun décalage lorsque le volume de données augmente. Vous trouverez ci-dessous des informations détaillées sur la configuration de votre projet et l'exécution de l'exportation.

Commencez par un essai gratuit pour découvrir comment IronXL simplifie les opérations sur les Datasets et les DataTables dans vos projets .NET Framework.

Quelle est la meilleure façon d'exporter un jeu de données vers Excel en VB.NET ?

L'approche la plus efficace pour exporter un jeu de données vers Excel en VB.NET utilise les classes WorkBook et WorkSheet d'IronXL. Bien que la bibliothèque prenne en charge le format XLSX moderne, elle supporte également les formats XLS et CSV universels, assurant ainsi la compatibilité avec d'autres applications.

Pour commencer, installez IronXL via le gestionnaire de packages NuGet dans Visual Studio en recherchant " IronXL.Excel " ou en exécutant Install-Package IronXL.Excel dans la console du gestionnaire de packages.

Dans cet exemple, nous créons une instance de classeur pour stocker nos données.

Imports IronXL
Imports System.Data

' Create a new DataTable object with sample data
Dim dt As New DataTable("Employees")
dt.Columns.Add("ID", GetType(Integer))
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Department", GetType(String))

' Add rows to the DataTable
dt.Rows.Add(1, "John Smith", "Engineering")
dt.Rows.Add(2, "Sarah Jones", "Marketing")
dt.Rows.Add(3, "Mike Wilson", "Sales")

' Create a new workbook and worksheet
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim worksheet As WorkSheet = workbook.CreateWorkSheet("Employees")

' Add column headers to the first worksheet
For col As Integer = 0 To dt.Columns.Count - 1
    worksheet.SetCellValue(0, col, dt.Columns(col).ColumnName)
Next

' Export data from DataTable to Excel worksheet
For row As Integer = 0 To dt.Rows.Count - 1
    For col As Integer = 0 To dt.Columns.Count - 1
        worksheet.SetCellValue(row + 1, col, dt.Rows(row)(col).ToString())
    Next
Next

' Save the Excel file
workbook.SaveAs("EmployeeData.xlsx")
Imports IronXL
Imports System.Data

' Create a new DataTable object with sample data
Dim dt As New DataTable("Employees")
dt.Columns.Add("ID", GetType(Integer))
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Department", GetType(String))

' Add rows to the DataTable
dt.Rows.Add(1, "John Smith", "Engineering")
dt.Rows.Add(2, "Sarah Jones", "Marketing")
dt.Rows.Add(3, "Mike Wilson", "Sales")

' Create a new workbook and worksheet
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim worksheet As WorkSheet = workbook.CreateWorkSheet("Employees")

' Add column headers to the first worksheet
For col As Integer = 0 To dt.Columns.Count - 1
    worksheet.SetCellValue(0, col, dt.Columns(col).ColumnName)
Next

' Export data from DataTable to Excel worksheet
For row As Integer = 0 To dt.Rows.Count - 1
    For col As Integer = 0 To dt.Columns.Count - 1
        worksheet.SetCellValue(row + 1, col, dt.Rows(row)(col).ToString())
    Next
Next

' Save the Excel file
workbook.SaveAs("EmployeeData.xlsx")
VB .NET

Sortie

Comment exporter un jeu de données vers Excel avec VB.NET : Guide complet avec IronXL : Image 1 - Résultat de l'exportation d'un tableau de données simple vers Excel en VB.NET

Ce code VB crée un objet DataTable, le remplit de lignes, puis parcourt chaque cellule pour remplir la feuille de calcul Excel. La méthode SetCellValue est utilisée ici par défaut pour garantir un placement précis des données dans la feuille Excel.

Comment exporter des données DataTables vers plusieurs feuilles de calcul Excel ?

Lors de la manipulation d'un ensemble de données complexe comportant plusieurs tables, chaque DataTable peut être exportée vers sa propre feuille Excel au sein d'un seul classeur Excel. Ceci est particulièrement utile lors de la présentation de données à un utilisateur qui a besoin d'informations catégorisées dans un seul fichier.

Fonctionnalité Description
Prise en charge des formats Prise en charge native des formats de fichiers XLSX, XLS et CSV.
Évolutivité Gère les grands ensembles de données sans pics de mémoire.
Indépendance Aucune configuration système Excel requise.
Imports IronXL
Imports System.Data

' Create a new Dataset with multiple tables
Dim ds As New DataSet("CompanyData")

' First DataTable - Products
Dim dtProducts As New DataTable("Products")
dtProducts.Columns.Add("ProductID", GetType(Integer))
dtProducts.Columns.Add("ProductName", GetType(String))
dtProducts.Columns.Add("Price", GetType(Decimal))
dtProducts.Rows.Add(101, "Widget A", 29.99D)
dtProducts.Rows.Add(102, "Widget B", 49.99D)
ds.Tables.Add(dtProducts)

' Second DataTable - Orders
Dim dtOrders As New DataTable("Orders")
dtOrders.Columns.Add("OrderID", GetType(Integer))
dtOrders.Columns.Add("Customer", GetType(String))
dtOrders.Columns.Add("Total", GetType(Decimal))
dtOrders.Rows.Add(1001, "Acme Corp", 599.90D)
dtOrders.Rows.Add(1002, "Tech Inc", 299.95D)
ds.Tables.Add(dtOrders)

' Create workbook and export each DataTable to separate sheets
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
For Each table As DataTable In ds.Tables
    Dim sheet As WorkSheet = workbook.CreateWorkSheet(table.TableName)
    ' Write column headers
    For col As Integer = 0 To table.Columns.Count - 1
        sheet.SetCellValue(0, col, table.Columns(col).ColumnName)
    Next
    ' Write data rows
    For row As Integer = 0 To table.Rows.Count - 1
        For col As Integer = 0 To table.Columns.Count - 1
            sheet.SetCellValue(row + 1, col, table.Rows(row)(col).ToString())
        Next
    Next
Next
workbook.SaveAs("CompanyReport.xlsx")
Imports IronXL
Imports System.Data

' Create a new Dataset with multiple tables
Dim ds As New DataSet("CompanyData")

' First DataTable - Products
Dim dtProducts As New DataTable("Products")
dtProducts.Columns.Add("ProductID", GetType(Integer))
dtProducts.Columns.Add("ProductName", GetType(String))
dtProducts.Columns.Add("Price", GetType(Decimal))
dtProducts.Rows.Add(101, "Widget A", 29.99D)
dtProducts.Rows.Add(102, "Widget B", 49.99D)
ds.Tables.Add(dtProducts)

' Second DataTable - Orders
Dim dtOrders As New DataTable("Orders")
dtOrders.Columns.Add("OrderID", GetType(Integer))
dtOrders.Columns.Add("Customer", GetType(String))
dtOrders.Columns.Add("Total", GetType(Decimal))
dtOrders.Rows.Add(1001, "Acme Corp", 599.90D)
dtOrders.Rows.Add(1002, "Tech Inc", 299.95D)
ds.Tables.Add(dtOrders)

' Create workbook and export each DataTable to separate sheets
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
For Each table As DataTable In ds.Tables
    Dim sheet As WorkSheet = workbook.CreateWorkSheet(table.TableName)
    ' Write column headers
    For col As Integer = 0 To table.Columns.Count - 1
        sheet.SetCellValue(0, col, table.Columns(col).ColumnName)
    Next
    ' Write data rows
    For row As Integer = 0 To table.Rows.Count - 1
        For col As Integer = 0 To table.Columns.Count - 1
            sheet.SetCellValue(row + 1, col, table.Rows(row)(col).ToString())
        Next
    Next
Next
workbook.SaveAs("CompanyReport.xlsx")
VB .NET

Sortie

Comment exporter un jeu de données vers Excel avec VB .NET : Guide complet avec IronXL : Image 2 - Fichier Excel généré contenant les données exportées sous forme de feuilles de calcul séparées

Le code parcourt chaque tableau du jeu de données, créant une feuille de calcul correspondante et transférant tous les en-têtes de colonnes et les données.

Comment les résultats des requêtes de base de données sont-ils exportés vers des fichiers Excel ?

La connexion à une source de données de base de données et l'exportation directe des résultats vers un nouveau fichier Excel constituent une exigence courante. L'utilisation SqlDataAdapter avec IronXL crée un pipeline transparent entre un système SQL et une feuille de calcul.

  1. Initialiser la connexion : configurez votre chaîne de connexion.
  2. Remplir l'ensemble de données : utilisez l'adaptateur pour importer les données dans votre concepteur d'ensemble de données.
  3. Utilisation d'IronXL : Créez une instance de classeur et parcourez les résultats pour manipuler les fichiers Excel selon les besoins.
Imports IronXL
Imports System.Data
Imports System.Data.SqlClient

' Define connection string and SQL query
Dim connectionString As String = "Server=localhost;Database=SalesDB;Integrated Security=True"
Dim query As String = "SELECT CustomerID, CompanyName, ContactName, Country FROM Customers"

' Create Dataset and fill from database
Dim ds As New DataSet()
Using connection As New SqlConnection(connectionString)
    Dim adapter As New SqlDataAdapter(query, connection)
    adapter.Fill(ds, "Customers")
End Using

' Access the DataTable exported from the database
Dim dt As DataTable = ds.Tables("Customers")

' Create Excel file and export the DataTable
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim worksheet As WorkSheet = workbook.CreateWorkSheet("CustomerData")

' Write column headers with formatting
For col As Integer = 0 To dt.Columns.Count - 1
    worksheet.SetCellValue(0, col, dt.Columns(col).ColumnName)
    worksheet.Rows(0).Style.Font.Bold = True
Next

' Execute data transfer to worksheet cells
For row As Integer = 0 To dt.Rows.Count - 1
    For col As Integer = 0 To dt.Columns.Count - 1
        Dim cellValue As Object = dt.Rows(row)(col)
        worksheet.SetCellValue(row + 1, col, If(cellValue Is DBNull.Value, "", cellValue.ToString()))
    Next
Next

' Save output file
workbook.SaveAs("CustomerExport.xlsx")
Console.WriteLine("Export complete!")
Imports IronXL
Imports System.Data
Imports System.Data.SqlClient

' Define connection string and SQL query
Dim connectionString As String = "Server=localhost;Database=SalesDB;Integrated Security=True"
Dim query As String = "SELECT CustomerID, CompanyName, ContactName, Country FROM Customers"

' Create Dataset and fill from database
Dim ds As New DataSet()
Using connection As New SqlConnection(connectionString)
    Dim adapter As New SqlDataAdapter(query, connection)
    adapter.Fill(ds, "Customers")
End Using

' Access the DataTable exported from the database
Dim dt As DataTable = ds.Tables("Customers")

' Create Excel file and export the DataTable
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim worksheet As WorkSheet = workbook.CreateWorkSheet("CustomerData")

' Write column headers with formatting
For col As Integer = 0 To dt.Columns.Count - 1
    worksheet.SetCellValue(0, col, dt.Columns(col).ColumnName)
    worksheet.Rows(0).Style.Font.Bold = True
Next

' Execute data transfer to worksheet cells
For row As Integer = 0 To dt.Rows.Count - 1
    For col As Integer = 0 To dt.Columns.Count - 1
        Dim cellValue As Object = dt.Rows(row)(col)
        worksheet.SetCellValue(row + 1, col, If(cellValue Is DBNull.Value, "", cellValue.ToString()))
    Next
Next

' Save output file
workbook.SaveAs("CustomerExport.xlsx")
Console.WriteLine("Export complete!")
VB .NET

Le SqlDataAdapter exécute la commande et récupère les données de la base de données SQL, en les stockant dans la collection Tables du jeu de données. Le code parcourt la DataTable exportée par la requête, en gérant les valeurs nulles par une vérification conditionnelle. L'utilisation d'une police en gras dans les en-têtes de colonnes améliore la lisibilité.

Pour les sources de données XML, IronXL prend également en charge la lecture et l'écriture des formats de feuilles de calcul basés sur XML, offrant ainsi une flexibilité pour différents scénarios d'échange de données.

Conclusion

L'exportation d'un jeu de données vers Excel en VB.NET devient simple grâce à l'API claire d'IronXL. Que vous travailliez avec un seul objet DataTable ou plusieurs tables, la bibliothèque gère la conversion de format de fichier et la gestion des feuilles de calcul dans les projets .NET Framework et .NET Core.

Les exemples montrent comment créer des fichiers Excel à partir de structures de données en mémoire et de requêtes de base de données sans recourir à Microsoft Office Interop. L'approche d'IronXL élimine les dépendances COM tout en offrant la mise en forme des polices et la prise en charge de plusieurs feuilles.

Prêt à implémenter l'exportation de jeux de données vers Excel dans vos applications VB.NET ? Achetez une licence ou explorez d'autres tutoriels DataTable pour étendre vos capacités d'automatisation Excel.

Questions Fréquemment Posées

Comment exporter un jeu de données vers Excel en VB.NET ?

Vous pouvez exporter un jeu de données vers Excel en VB.NET à l'aide de la bibliothèque IronXL, qui fournit une API intuitive pour créer, modifier et manipuler des fichiers Excel sans avoir besoin de Microsoft Office.

Ai-je besoin d'installer Microsoft Office pour utiliser IronXL ?

Non, IronXL ne nécessite pas l'installation de Microsoft Office sur l'ordinateur de l'utilisateur pour exporter ou manipuler des fichiers Excel.

Quels types de données puis-je exporter avec IronXL ?

IronXL vous permet d'exporter efficacement des données structurées telles que des DataTables et des Datasets vers des fichiers Excel.

IronXL peut-il gérer la création et la modification de fichiers Excel ?

Oui, IronXL offre des fonctionnalités permettant de créer, modifier et manipuler des fichiers Excel par programmation en VB.NET.

IronXL est-il adapté aux applications de bureau ?

Oui, IronXL est idéal pour les applications de bureau, notamment celles qui utilisent des grilles de données ou des bases de données système pour exporter des données vers Excel.

Quels sont les avantages de l'utilisation d'IronXL pour l'exportation d'ensembles de données ?

IronXL simplifie le processus d'exportation des ensembles de données en proposant une API qui gère la création et la manipulation de fichiers Excel sans dépendances externes telles que Microsoft Office.

IronXL peut-il être utilisé dans un environnement serveur ?

Oui, IronXL peut être déployé dans des environnements serveur pour la génération automatisée de fichiers Excel et les tâches d'exportation de données.

IronXL prend-il en charge les grands ensembles de données ?

IronXL est conçu pour gérer efficacement les grands ensembles de données lors de l'exportation vers Excel, garantissant ainsi performance et fiabilité.

Est-il possible de manipuler des fichiers Excel existants à l'aide d'IronXL ?

Oui, IronXL vous permet d'ouvrir et de manipuler des fichiers Excel existants, offrant des fonctionnalités telles que l'édition et la mise en forme des données.

Quel langage de programmation est utilisé avec IronXL ?

IronXL prend en charge VB.NET, permettant aux développeurs d'intégrer facilement les fonctionnalités d'Excel dans leurs applications VB.NET.

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