IRONSOFTWAREHOME
UTILISATION D'IRONXL

Télécharger un fichier Excel en .NET C# : Exporter des données aux formats XLSX, CSV et plus encore

Curtis Chau
Curtis Chau
Updated: 19 juillet 2026

La mise en œuvre d'une fonctionnalité d'exportation de feuilles de calcul est une exigence courante pour les applications Web Enterprise , mais le processus manuel de génération et de livraison de ces fichiers introduit souvent une complexité technique importante. Les développeurs doivent fréquemment naviguer dans les subtilités de la gestion de MemoryStream et configurer des en-têtes HTTP Content-Disposition précis afin de garantir un comportement cohérent du navigateur et d'éviter la corruption des données.

Cet article détaille tout ce dont vous avez besoin pour créer et télécharger des fichiers Excel dans les contrôleurs MVC ASP .NET C# à l'aide de la bibliothèque IronXL. Nous verrons comment exporter des données vers de véritables fichiers Excel au format XLSX, lire en continu des fichiers CSV, convertir les fichiers téléchargés pour une réexportation et afficher les téléchargements directement dans le navigateur, le tout sans installer Microsoft Office ni utiliser Excel Interop. Installez le package NuGet IronXL et profitez d'un essai gratuit pour suivre les exemples de code source.

NuGetInstaller avec NuGet

PM > Install-Package IronXL.Excel

Install IronXL by running the command above in the NuGet Package Manager Console, or search for the package in the NuGet Package Manager.

Comment créer et télécharger un fichier Excel à partir d'un contrôleur ?

Le modèle de base pour tout scénario de téléchargement de fichier Excel dans ASP.NET Core implique trois étapes : créer le classeur, l'écrire dans un flux, et retourner le flux en tant que réponse de fichier. Le code suivant illustre une action complète de contrôleur MVC qui crée un fichierXLSXà partir de zéro et l'envoie au navigateur.

using IronXL;
using Microsoft.AspNetCore.Mvc;
public class ReportController : Controller
{
    // Export employee data as a downloadable Excel file
    public IActionResult DownloadExcel()
    {
        // Create a new workbook and worksheet
        var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        var worksheet = workbook.CreateWorkSheet("Employees");
        // Add header row with column names
        worksheet["A1"].Value = "Name";
        worksheet["B1"].Value = "Department";
        worksheet["C1"].Value = "Salary";
        // Populate cells with data values
        worksheet["A2"].Value = "Alice Torres";
        worksheet["B2"].Value = "Engineering";
        worksheet["C2"].Value = 95000;
        worksheet["A3"].Value = "James Park";
        worksheet["B3"].Value = "Marketing";
        worksheet["C3"].Value = 78000;
        // Export workbook to a MemoryStream for download
        var stream = workbook.ToStream();
        string filename = "Employees.xlsx";
        var content = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        // Return file to the browser with content disposition attachment
        return File(stream, content, filename);
    }
}

Fichier Excel de sortie

Télécharger un fichier Excel dans ASP .NET C#: Exporter des données vers XLSX,CSVet plus : Image 1 - exemple de sortie pour télécharger un fichier Excel dans ASP .NET C#

La méthode WorkBook.Create génère un nouveau document Excel, et CreateWorkSheet y ajoute la première feuille de calcul. Après avoir rempli les cellules avec des valeurs, la méthode ToStream convertit l'intégralité du classeur en un MemoryStream ; aucun fichier temporaire n'est enregistré sur le disque. La méthode de retour File() du contrôleur définit l'en-tête Content Disposition sur attachment, ce qui indique au navigateur de télécharger le fichier plutôt que d'essayer de l'afficher. Le troisième paramètre détermine comment le nom du fichier apparaît dans la boîte de dialogue de téléchargement de l'utilisateur.

Ce modèle IActionResult public fonctionne aussi bien avec les projets .NET Framework qu'avec les projets ASP.NET Core , ce qui en fait l'approche de choix pour les applications Web qui doivent exporter des données vers Excel .

Comment exporter les données d'une base de données vers une feuille de calcul téléchargeable ?

Dans la plupart des cas concrets, il s'agit d'exporter des données à partir d'une table de base de données plutôt que d'utiliser des valeurs codées en dur. Le processus reste le même : interroger les données, remplir les feuilles de calcul et renvoyer le fichier. Voici un exemple qui simule l'extraction d'enregistrements d'une base de données et leur écriture dans un document Excel.

using IronXL;
using Microsoft.AspNetCore.Mvc;
public class DataExportController : Controller
{
    // Export database records to an xlsx file for download
    public IActionResult ExportDatabaseReport()
    {
        // Simulate a database query returning order records
        var orders = new[]
        {
            new { OrderId = 1001, Customer = "Acme Corp", Total = 4500.00m },
            new { OrderId = 1002, Customer = "Globex Inc", Total = 12300.50m },
            new { OrderId = 1003, Customer = "Initech LLC", Total = 890.75m },
        };
        var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        var worksheet = workbook.CreateWorkSheet("Orders");
        // Write headers
        worksheet["A1"].Value = "Order ID";
        worksheet["B1"].Value = "Customer";
        worksheet["C1"].Value = "Total";
        // Write each row of data from the query results
        for (int i = 0; i < orders.Length; i++)
        {
            int row = i + 2;
            worksheet[$"A{row}"].Value = orders[i].OrderId;
            worksheet[$"B{row}"].Value = orders[i].Customer;
            worksheet[$"C{row}"].Value = orders[i].Total;
        }
        var stream = workbook.ToStream();
        string filename = $"OrderReport-{DateTime.Now:yyyyMMdd}.xlsx";
        return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename);
    }
}

Sortie

Télécharger un fichier Excel dans ASP .NET C#: Exporter des données vers XLSX,CSVet plus : Image 2 - Sortie pour exporter des données d'une base de données vers un fichier Excel

En production, le tableau des commandes proviendrait d'une requête Entity Framework Core, d'un appel Dapper ou de toute couche d'accès aux données connectée à la base de données via une chaîne de connexion. La boucle parcourt les résultats et inscrit chaque valeur dans les cellules correspondantes de la feuille de calcul. Notez que le nom de fichier inclut une date, un petit détail qui évite bien des soucis lorsque les utilisateurs téléchargent des fichiers à répétition.

Le système d'adressage des cellules d'IronXL (worksheet[$"A{row}"]) assure la lisibilité, et l' API WorkBook gère en interne tout le travail complexe de création d'un fichierXLSXvalide. Pour des scénarios plus complexes impliquant des formules, des styles ou des classeurs à plusieurs feuilles, la même approche s'adapte parfaitement.

Comment télécharger des données au formatCSVplutôt qu'XLSX ?

Un fichierCSVléger est parfois préférable, notamment pour l'intégration de données dans d'autres systèmes, bases de données ou outils qui n'ont pas besoin de toutes les fonctionnalités d'un fichier Excel. IronXL simplifie considérablement la conversion entre les formats.

using IronXL;
using Microsoft.AspNetCore.Mvc;
public class CsvController : Controller
{
    // Export data as aCSVfile download
    public IActionResult ExportCsv()
    {
        var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        var worksheet = workbook.CreateWorkSheet("Products");
        worksheet["A1"].Value = "SKU";
        worksheet["B1"].Value = "Product";
        worksheet["C1"].Value = "Price";
        worksheet["A2"].Value = "WDG-001";
        worksheet["B2"].Value = "Widget Pro";
        worksheet["C2"].Value = 29.99;
        // Convert toCSVstream instead of XLSX
        var stream = workbook.ToCsvStream();
        string filename = "Products.csv";
        return File(stream, "text/csv", filename);
    }
}

FichierCSVde sortie

Télécharger un fichier Excel dans ASP .NET C#: Exporter des données vers XLSX,CSVet plus : Image 3 - Données téléchargées en tant que fichierCSVau lieu d'Excel

La méthode ToCsvStream exporte la première feuille de calcul sous forme de MemoryStream au format CSV. Les fichiersCSVsont parfaits pour l'échange de données, mais ils suppriment toute mise en forme, formules et structure multi-feuilles. Lorsque vous avez besoin de ces fonctionnalités, utilisez le format de fichierXLSXvia ToStream() ou ToXlsxStream(). Pour une analyse plus approfondie des conversions de format, reportez-vous au guide de conversion des feuilles de calcul .

Comment réexporter un fichier téléchargé dans un format différent ?

Un scénario courant d'application Web consiste à accepter les fichiers téléchargés par les utilisateurs et à les exporter dans un autre format, par exemple en convertissant un fichierXLSenXLSXou en produisant des fichiersCSVà partir d'un classeur initialement enregistré dans un format ancien.

public IActionResult ConvertUpload(IFormFile upload)
{
    using var memoryStream = new MemoryStream();
    upload.CopyTo(memoryStream);
    memoryStream.Position = 0;
    // Load uploaded Excel file from the stream
    var workbook = WorkBook.Load(memoryStream);
    // Re-export asXLSXregardless of the original file extension or file type
    var stream = workbook.ToXlsxStream();
    string filename = Path.GetFileNameWithoutExtension(upload.FileName) + ".xlsx";
    return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename);
}

Résultat : Conversion du fichierCSVau format XLSX

Télécharger un fichier Excel dans ASP .NET C#: Exporter des données vers XLSX,CSVet plus : Image 4 - Exemple de sortie pour convertir notre fichierCSVen format XLSX

La méthode WorkBook.Load accepte un MemoryStream ; il n'est donc pas nécessaire d'enregistrer les fichiers téléchargés sur le disque au préalable. Elle détecte automatiquement si la source est un fichier XLS,XLSXouCSVet l'analyse en conséquence. À partir de là,ToXlsxStream()génère un nouveau MemoryStream propre au formatXLSXmoderne, chaque octet étant correctement structuré. Cela permet de normaliser les soumissions des utilisateurs avant tout traitement ou stockage ultérieur.

Quels formats de fichiers peuvent être exportés ?

IronXL prend en charge l'exportation de données vers de multiples formats de tableur et d'échange de données. Le tableau ci-dessous récapitule les options de sortie disponibles et leurs meilleures utilisations.

| Format| Extension de fichier | Méthode de flux | Cas d'utilisation optimal | | ---| ---| ---| ---| |XLSX|.xlsx|ToXlsxStream()| Feuilles de calcul Excel modernes avec mise en forme et formules | |XLS|.xls|ToXlsStream()| Compatibilité avec les systèmes existants | |CSV|.csv|ToCsvStream()| Importation de bases de données, pipelines de données, exportation légère | |XML|.xml|ToXmlStream()| Intégration des systèmes Enterprise | |JSON|.json| EnregistrerAuJson() | Réponses et échanges de données de l'API Web | |HTML|.html| ExporterEnHTML() | Affichage sur page Web des données de feuille de calcul |

Chaque méthode de flux renvoie un MemoryStream qui se connecte directement à la fonction d'assistance de retour File() d' ASP.NET Core. L'alternative de tableau d'octets (ToByteArray()) est également disponible pour les scénarios où un byte[] est plus pratique, par exemple lors de l'enregistrement dans une base de données blob ou de la jonction à un flux de réponse par e-mail. Toutes ces méthodes sont disponibles immédiatement après l'installation du package NuGet IronXL . Pour une description complète de chaque format d'exportation, consultez la documentation relative à l'exportation vers Excel .

Que l'objectif soit de télécharger des fichiers au formatXLSXpour les analystes commerciaux, d'exporter des fichiersCSVpour les ingénieurs de données ou de générer duXMLpour l'intégration Enterprise , IronXL garantit un code propre et une sortie fiable pour les applications .NET Core et .NET Framework . Prêt à exporter des feuilles de calcul pour votre prochain projet ? Obtenez une licence d'essai gratuite ou explorez les options de licence pour commencer dès aujourd'hui. Pour obtenir des instructions d'installation étape par étape, reportez-vous au guide de démarrage IronXL .

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

...
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