IRONSOFTWAREHOME
UTILISATION D'IRONXL

Comment écrire dans un fichier Excel en VB.NET (La méthode facile)

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 19 juillet 2026

L'utilisation d'Office Interop a traditionnellement été l'option de facto pour automatiser les tâches Excel de Microsoft, mais elle comporte des inconvénients importants : problèmes de performance, complications côté serveur et l'exigence que Microsoft Excel soit installé sur la machine.

Ce guide présente une approche moderne et plus efficace pour créer et écrire dans un fichier Excel en VB.NET. Nous utiliserons IronXL for .NET , une bibliothèque conçue spécifiquement pour aider les développeurs à créer, lire et modifier des feuilles de calcul Excel sans recourir à Office Interop. Vous découvrirez comment effectuer des tâches courantes telles que la création de nouveaux fichiers, l'écriture de données à partir de collections et la modification de documents existants en quelques lignes de code intuitives.

Comment débuter avec l'automatisation Excel en VB.NET ?

Pour commencer à écrire dans des fichiers Excel depuis votre projet VB.NET, vous devez d'abord ajouter la bibliothèque IronXL. Le processus est simple et peut être réalisé directement dans Visual Studio.

Tout d'abord, assurez-vous que votre environnement de développement est prêt :

  • Visual Studio 2022 ou version ultérieure.
  • Un projet actif ciblant .NET Framework 4.6.2 ou supérieur , ou .NET Core/.NET 5+ . IronXL est compatible avec toutes les versions modernes de .NET, jusqu'à .NET 9 et 10 inclus.

Ensuite, installez le package NuGet IronXL :

  1. Ouvrez le Gestionnaire de packages NuGet dans Visual Studio.
  2. Recherchez le package IronXL.Excel.
  3. Cliquez sur " Installer ".

Vous pouvez également l'installer via la console du gestionnaire de packages avec la commande suivante :

PM > Install-Package IronXL.Excel

Accédez au gestionnaire de packages NuGet Accéder au Gestionnaire de packages NuGet dans le menu de Visual Studio pour trouver le package approprié pour l'intégration VB.NET Excel.

Une fois installé, vous êtes prêt à commencer à écrire du code. Ajoutez simplement Imports IronXL en haut de votre fichier VB.NET pour inclure les classes de la bibliothèque dans la portée.

Recherchez le package IronXL dans l'interface utilisateur du gestionnaire de packages NuGet Recherche du package IronXL pour installer la bibliothèque nécessaire à l'écriture de données dans un fichier Excel à l'aide de VB.NET.

Comment créer un nouveau fichier Excel et y écrire des données ?

Créer un nouveau fichier Excel à partir de zéro est une tâche fondamentale. Avec IronXL, vous pouvez générer un classeur, ajouter des feuilles de calcul et remplir des cellules avec des données provenant de n'importe quelle source, telle qu'une collection d'objets. C'est idéal pour des tâches comme l'exportation de données d'application ou la génération de rapports quotidiens.

Prenons un exemple concret. Imaginons que nous ayons une liste de données produits que nous souhaitons exporter vers une feuille de calcul Excel.

Écrire une collection dans une nouvelle feuille de calcul Excel

Le code suivant démontre comment prendre un List(Of Product) et écrire son contenu dans un fichier Excel nouvellement créé.

Imports IronXL
Imports System.Collections.Generic
Imports System.Linq

Public Class Product
    Public Property ID As Integer
    Public Property Name As String
    Public Property Price As Decimal
End Class

Module Program
    Sub Main(args As String())
        ' 1. Prepare a list of data to write to Excel.
        Dim products As New List(Of Product) From {
            New Product With {.ID = 1, .Name = "Laptop", .Price = 1200.50D},
            New Product With {.ID = 2, .Name = "Keyboard", .Price = 75.00D},
            New Product With {.ID = 3, .Name = "Mouse", .Price = 25.99D}
        }

        ' 2. Create a new Excel workbook and select the default worksheet.
        Dim workbook As WorkBook = WorkBook.Create()
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet
        
        ' 3. Write headers for our data.
        sheet("A1").Value = "Product ID"
        sheet("B1").Value = "Product Name"
        sheet("C1").Value = "Price"

        ' Style the header row.
        Dim headerRange = sheet.GetRange("A1:C1")
        headerRange.Style.Font.Bold = True
        headerRange.Style.SetBackgroundColor("#D3D3D3") ' Light Gray

        ' 4. Iterate through the product list and write data to subsequent rows.
        For i As Integer = 0 To products.Count - 1
            Dim product = products(i)
            Dim row = i + 2 ' Start from the second row
            sheet("A" & row).Value = product.ID
            sheet("B" & row).Value = product.Name
            sheet("C" & row).Value = product.Price
        Next

        ' 5. Apply currency formatting to the price column.
        Dim priceColumn = sheet.GetRange("C2:C" & products.Count + 1)
        priceColumn.Style.Format = "$#,##0.00"

        ' 6. Auto-size columns for better readability.
        sheet.Columns.AutoFit()

        ' 7. Save the newly created and populated workbook to a file.
        workbook.SaveAs("ProductReport.xlsx")

    End Sub
End Module
VB .NET

Comment ça marche

Cet exemple de code illustre la simplicité et la puissance de l'API IronXL pour l'automatisation de la saisie de données Excel.

  1. Préparation des données : Nous commençons par une simple classe Product et un List(Of Product) qui représente les données que nous voulons exporter. Cela simule l'extraction de données à partir d'une base de données ou d'une autre couche de logique métier.
  2. Création du classeur et de la feuille de calcul : WorkBook.Create() génère un nouveau classeur Excel vide en mémoire. Chaque nouveau classeur contient automatiquement une feuille de calcul, à laquelle nous pouvons accéder via la propriété DefaultWorkSheet. Pour des documents plus complexes, vous pouvez ajouter plus de feuilles de calcul à l'aide de la méthode CreateWorkSheet.
  3. Écriture des données : Nous accédons aux cellules en utilisant une notation familière de style A1 (par exemple, sheet("A1")). La propriété .Value est utilisée pour définir et obtenir le contenu d'une cellule. IronXL gère automatiquement les conversions de types de données pour les nombres, les chaînes de caractères et les dates.
  4. Style et mise en forme : IronXL fournit une API de style complète. Dans l'exemple, nous sélectionnons une Range de cellules et appliquons un formatage en gras et une couleur de fond à notre en-tête. Nous appliquons également un format de devise à la colonne des prix à l'aide de la propriété Style.Format, une fonctionnalité essentielle pour créer des rapports professionnels. Pour plus d'options de style, consultez la documentation de l'API pour l'objet Style .
  5. Enregistrement du fichier : Enfin, workbook.SaveAs("ProductReport.xlsx") écrit le classeur en mémoire dans le système de fichiers. IronXL prend en charge divers formats, y compris .xlsx, .xls, .csv, et .tsv, vous offrant de la flexibilité dans la manière dont vous exportez vos données.

Comment puis-je écrire des données dans un fichier Excel existant ?

Souvent, il n'est pas nécessaire de créer un nouveau fichier, mais plutôt d'ajouter des données à un fichier existant. Ceci est courant pour la journalisation, l'ajout d'enregistrements à un ensemble de données ou la mise à jour d'un rapport. IronXL rend ce processus aussi simple que la création d'un nouveau fichier.

L'exemple suivant montre comment ouvrir une feuille de calcul existante, trouver la dernière ligne utilisée et ajouter de nouvelles données.

Imports IronXL
Imports System.Collections.Generic
Imports System.Linq

' (Assuming the Product class from the previous example is available)

Module Program
    Sub Main(args As String())
        ' Ensure the file from our previous example exists.
        If Not System.IO.File.Exists("ProductReport.xlsx") Then
            Console.WriteLine("Please run the first example to create ProductReport.xlsx")
            Return
        End If

        ' 1. Load the existing workbook from the file system.
        Dim workbook As WorkBook = WorkBook.Load("ProductReport.xlsx")
        Dim sheet As WorkSheet = workbook.DefaultWorkSheet

        ' 2. Find the first empty row to append new data.
        ' The LastRowUsed property gives us the last row with data.
        Dim lastRow = sheet.Info.LastRowUsed
        Dim newRowIndex = lastRow.RowNumber + 1

        ' 3. Define the new data to be added.
        Dim newProducts As New List(Of Product) From {
            New Product With {.ID = 4, .Name = "Monitor", .Price = 350.00D},
            New Product With {.ID = 5, .Name = "Webcam", .Price = 99.99D}
        }

        ' 4. Loop through the new data and write it to the worksheet.
        For i As Integer = 0 To newProducts.Count - 1
            Dim product = newProducts(i)
            Dim currentRow = newRowIndex + i
            sheet("A" & currentRow).Value = product.ID
            sheet("B" & currentRow).Value = product.Name
            sheet("C" & currentRow).Value = product.Price
        Next

        ' 5. Re-apply formatting and auto-fit columns to include new data.
        Dim priceColumn = sheet.GetRange("C2:C" & sheet.Info.LastRowUsed.RowNumber)
        priceColumn.Style.Format = "$#,##0.00"
        sheet.Columns.AutoFit()

        ' 6. Save the changes back to the original file.
        workbook.Save()

        ' Or save as a new file to preserve the original.
        ' workbook.SaveAs("ProductReport_Updated.xlsx")
    End Sub
End Module
VB .NET

Explication plus détaillée

La modification d'un fichier existant suit un schéma logique de chargement-édition-enregistrement.

  1. Chargement du classeur : Au lieu de WorkBook.Create(), nous utilisons WorkBook.Load("ProductReport.xlsx"). Cela ouvre le fichier spécifié et analyse son contenu dans un objet WorkBook, prêt pour la manipulation.
  2. Trouver le point d'insertion : L'un des principaux défis de l'ajout de données consiste à trouver où commencer à écrire. IronXL simplifie cela avec la propriété sheet.Info.LastRowUsed, qui renvoie le dernier objet Row contenant des données. Il suffit de récupérer son numéro de ligne et d'y ajouter un pour trouver la première ligne vide.
  3. Ajout de données : Le processus d'écriture des nouvelles données est identique à l'exemple précédent. Nous parcourons notre nouvelle liste Product et remplissons les cellules dans les lignes vides nouvellement identifiées.
  4. Enregistrement des modifications : La méthode workbook.Save() remplace le fichier original par le classeur modifié depuis la mémoire. Si vous avez besoin de conserver l'original, utilisez simplement SaveAs() avec un nouveau nom de fichier, comme indiqué dans la ligne commentée.

Comment écrire un DataTable dans une feuille de calcul Excel ?

Pour les développeurs travaillant avec des données provenant de sources comme SQL Server, une tâche courante consiste à écrire le contenu d'un DataTable directement sur une feuille Excel. IronXL simplifie ce processus grâce à une méthode intégrée, éliminant ainsi la nécessité de parcourir manuellement les lignes et les colonnes.

Cet exemple montre comment remplir un DataTable et l'exporter vers un nouveau fichier Excel en une étape.

Imports IronXL
Imports System.Data

Module Program
    Sub Main(args As String())
        ' 1. Create and populate a DataTable. This often comes from a database query.
        Dim dt As New DataTable("EmployeeData")
        dt.Columns.Add("EmployeeID", GetType(Integer))
        dt.Columns.Add("FullName", GetType(String))
        dt.Columns.Add("Department", GetType(String))
        dt.Columns.Add("HireDate", GetType(Date))

        dt.Rows.Add(101, "John Smith", "Sales", New Date(2022, 5, 20))
        dt.Rows.Add(102, "Jane Doe", "Engineering", New Date(2021, 8, 15))
        dt.Rows.Add(103, "Peter Jones", "Marketing", New Date(2023, 1, 10))

        ' 2. Create a new workbook.
        Dim workbook As WorkBook = WorkBook.Create()
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Employees")

        ' 3. Write the DataTable to the worksheet starting at cell A1.
        ' The second parameter (True) indicates that column headers should be included.
        sheet.Write(dt, "A1", True)

        ' 4. Apply some styling for a more polished look.
        sheet.Columns.AutoFit()
        Dim headerRange = sheet.GetRange("A1:D1")
        headerRange.Style.Font.Bold = True
        headerRange.Style.SetBackgroundColor("#C5D9F1") ' Light Blue

        Dim dateColumn = sheet.GetRange("D2:D" & dt.Rows.Count + 1)
        dateColumn.Style.Format = "yyyy-mm-dd"

        ' 5. Save the workbook.
        workbook.SaveAs("EmployeeDatabaseExport.xlsx")
    End Sub
End Module
VB .NET

La méthode sheet.Write() est incroyablement efficace à cette fin. Elle mappe intelligemment la structure de DataTable à la feuille de calcul, y compris les en-têtes de colonnes si spécifiés. Il s'agit d'une fonctionnalité puissante pour toute application basée sur les données et d'un gain de temps considérable par rapport à l'itération manuelle. Pour plus de détails sur l'importation et l'exportation de données, consultez notre tutoriel sur la conversion entre différents formats de feuilles de calcul .

Que puis-je faire d'autre lors de l'écriture de fichiers Excel ?

L'écriture des données n'est que le début. Une bibliothèque Excel VB.NET robuste doit offrir une suite complète de fonctionnalités pour automatiser toute tâche liée aux feuilles de calcul. IronXL offre des fonctionnalités étendues, notamment :

  • Formules : Définir et calculer des formules par programmation. Vous pouvez attribuer une formule à un Value de cellule (par exemple, sheet("C1").Value = "=SUM(A1:B1)") et IronXL calculera le résultat.
  • Graphiques : Créez différents types de graphiques à partir des données de la feuille de calcul pour visualiser les informations.
  • Validation des données : Appliquer des règles aux cellules, par exemple en n'autorisant que les nombres compris dans une plage spécifique ou les valeurs d'une liste déroulante.
  • Mise en forme conditionnelle : Appliquez un style aux cellules en fonction de leurs valeurs, ce qui permet de mettre en évidence les points de données importants.
  • Sécurité et protection : Protégez les feuilles de calcul ou les classeurs entiers par des mots de passe afin de contrôler l'accès et d'empêcher toute modification.

Ces fonctionnalités permettent l'automatisation complète des flux de travail complexes de génération de rapports et d'analyse de données directement au sein de vos applications .NET.

Commencez dès aujourd'hui à écrire dans des fichiers Excel en VB.NET

Comme démontré, l'écriture de données dans des fichiers Excel en VB.NET est considérablement simplifiée par l'utilisation d'une bibliothèque moderne comme IronXL. En évitant les complexités et les dépendances d'Office Interop, vous pouvez créer des applications plus fiables, performantes et faciles à déployer. Que vous ayez besoin de créer des fichiers Excel à partir de zéro, d'ajouter des données à des rapports existants, ou d'exporter un DataTable, IronXL fournit une API intuitive et puissante pour accomplir efficacement le travail.

Vous pouvez télécharger IronXL et l'essayer avec une licence d'essai gratuite pour voir à quel point il s'intègre facilement à vos projets.

Pour ceux qui ont des besoins plus larges, n'oubliez pas qu'IronXL fait également partie de la suite Iron for .NET . Avec une seule licence, vous accédez à un ensemble complet de bibliothèques pour la gestion des PDF, des codes-barres, de la reconnaissance optique de caractères (OCR) et bien plus encore, offrant une valeur exceptionnelle à tout développeur .NET.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise