Passer au contenu du pied de page
COMPARER à D'AUTRES COMPOSANTS

ASP.NET Export to Excel : Comparaison des meilleurs outils pour les développeurs C#

L'exportation de données vers des fichiers Excel est essentielle dans les applications web ASP.NET Core. Qu'il s'agisse de générer des rapports à partir d'une base de données, de permettre aux utilisateurs d'exporter le contenu d'une grille ou de créer des exportations CSV, les développeurs ont besoin de méthodes fiables pour créer des documents Excel. Ces fichiers doivent s'ouvrir correctement dans Microsoft Excel, sans avertissement du navigateur ni nécessité d'ouvrir une nouvelle page pour gérer le téléchargement.

Cet article compare les approches populaires de l'exportation Excel dans ASP.NET Core, en examinant les méthodes traditionnelles aux côtés de bibliothèques modernes comme IronXL, ClosedXMLet EPPlus.

Démarrez votre essai gratuit pour découvrir comment IronXLsimplifie la création de fichiers Excel dans vos projets ASP.NET Core.

Quelles sont les méthodes courantes pour exporter des données vers Excel dans ASP.NET Core?

La manière la plus simple d'exporter des données implique plusieurs approches distinctes. La plupart des flux de travail commencent par l'établissement d'une chaîne de connexion pour récupérer les données avant de choisir un chemin d'exportation.

  • Approche traditionnelle du type MIME: Cette ancienne méthode utilise la propriété Content Type (définie sur application/vnd.ms-excel) et transmet le contenu HTML au navigateur. Bien qu'il s'agisse d'une solution par défaut dans les systèmes plus anciens, elle déclenche souvent des avertissements de format.
  • Solutions basées sur des bibliothèques : Les bibliothèques modernes nécessitent l'ajout de références NuGet pour générer de véritables fichiers XLSX à l'aide du format Open XML. Il s'agit notamment d'IronXL, ClosedXMLet EPPlus, qui fournissent des API permettant de créer des objets de classeur et d'enregistrer des fichiers avec un formatage approprié.

    Fonction Type MIME/HTML ClosedXML EPPlus IronXL
    Sortie XLSX authentique Non Oui Oui Oui
    Prise en charge des fichiers CSV Manuel Limité Limité Natif
    Pas d'avertissement Excel Non Oui Oui Oui
    Aide à la formulation Non Oui Oui Oui
    Exportation JSON/XML Non Non Non Oui
    Licence commerciale N/A MIT Polyform Commercial
    prise en charge de .NET Core Oui Oui Oui Oui

Comment fonctionne l'approche traditionnelle de l'exportation de grilles de visualisation ? Dans les anciens WebForms et certains anciens modèles MVC, les développeurs exportent souvent les données des GridView en les rendant au format HTML. L'application utilise `Response.AddHeader` pour définir le nom du fichier et procède ensuite à l'écriture du flux HTML directement sur la sortie. ```cs // Traditional approach - exports HTML disguised as Excel public void ExportToExcel(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("content-disposition", "attachment;filename=Report.xls"); StringWriter stringWriter = new StringWriter(); HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter); // Render grid content as HTML DataGrid1.RenderControl(htmlTextWriter); Response.Write(stringWriter.ToString()); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { // Required to prevent server form rendering errors } ``` ### Sortie de légende [ASP.NET Export to Excel : Comparaison des meilleurs outils pour les développeurs C# : Image 1 - Sortie d'exportation Excel héritée](/static-assets/excel/blog/asp-net-export-to-excel/asp-net-export-to-excel-1.webp) Cette méthode nécessite la fonction `public override void VerifyRenderingInServerForm` pour contourner la validation côté serveur. Cependant, le fichier généré contient du HTML plutôt que de véritables données au format Excel, ce qui conduit Microsoft Excel à afficher des avertissements de format. Cette approche ne permet pas de générer un formatage correct des feuilles Excel, des formules ou des colonnes dactylographiées. ## Comment IronXLfor .NET simplifie-t-il la génération de fichiers Excel en ASP.NET Core? [IronXL](/csharp/excel/) fournit une API moderne permettant de créer de véritables fichiers Excel sans les dépendances de Microsoft Office. Elle permet aux utilisateurs de déclencher un téléchargement à partir de la **même page** sans interrompre l'expérience de l'utilisateur. L'exemple suivant montre comment exporter des données dans un document Excel et les diffuser dans le navigateur de l'utilisateur : ```cs using IronXL; using Microsoft.AspNetCore.Mvc; public class ExportController : Controller { [HttpPost] public IActionResult ExportReport() { // Create workbook and worksheet WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet worksheet = workbook.CreateWorkSheet("Sales Data"); // Add header row worksheet["A1"].Value = "Product"; worksheet["B1"].Value = "Quantity"; worksheet["C1"].Value = "Revenue"; // Populate data rows from your data source worksheet["A2"].Value = "Widget A"; worksheet["B2"].Value = 150; worksheet["C2"].Value = 4500.00; worksheet["A3"].Value = "Widget B"; worksheet["B3"].Value = 230; worksheet["C3"].Value = 6900.00; // Style the header cells var headerRange = worksheet["A1:C1"]; headerRange.Style.Font.Bold = true; // Generate file for browser download byte[] fileBytes = workbook.ToByteArray(); string filename = $"SalesReport_{DateTime.Now:yyyyMMdd}.xlsx"; return File(fileBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename); } } ``` ### Sortie IronXL [ASP.NET Export to Excel : Comparaison des meilleurs outils pour les développeurs C# : Image 2 - Sortie de l'exportation IronXLvers Excel](/static-assets/excel/blog/asp-net-export-to-excel/asp-net-export-to-excel-2.webp) La méthode `WorkBook.Create` d'IronXL génère un nouveau document Excel, tandis que `CreateWorkSheet` ajoute des onglets de feuille de calcul nommés. La bibliothèque gère en interne toute la complexité d'Open XML, ce qui permet aux développeurs de se concentrer sur le remplissage des cellules avec des données. La méthode `ToByteArray()` convertit le classeur en octets adaptés à la réponse `File()` d'ASP.NET Core, en définissant automatiquement des en-têtes de disposition de contenu corrects pour le téléchargement par le navigateur. Les utilisateurs reçoivent un fichier XLSX authentique qui s'ouvre sans avertissement. Pour les scénarios d'exportation CSV nécessitant un format de valeurs séparées par des virgules, IronXLfournit la méthode [SaveAsCsv](/csharp/excel/how-to/c-sharp-export-to-excel/) : ```cs // Export as CSV file instead of XLSX workbook.SaveAsCsv("output.csv"); ``` ## Comment ClosedXMLet EPPlusse comparent-ils? **ClosedXML** intègre le SDK Open XML de Microsoft à une API conviviale. Dans l'explorateur de solutions, procédez à l'installation via NuGet avec `Install-Package ClosedXML` : ```cs using ClosedXML.Excel; public IActionResult ExportWithClosedXML() { using var workbook = new XLWorkbook(); var worksheet = workbook.AddWorksheet("Data"); worksheet.Cell(1, 1).Value = "Name"; worksheet.Cell(1, 2).Value = "Amount"; using var stream = new MemoryStream(); workbook.SaveAs(stream); return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "export.xlsx"); } ``` ### Sortie ClosedXML [ASP.NET Export to Excel : Comparaison des meilleurs outils pour les développeurs C# : Image 3 - ClosedXMLexport to Excel output](/static-assets/excel/blog/asp-net-export-to-excel/asp-net-export-to-excel-3.webp) **EPPlus** offre des fonctionnalités similaires mais requiert une attention particulière à ses [conditions de licence](https://www.epplussoftware.com/en/LicenseOverview) pour une utilisation commerciale. Les deux bibliothèques créent des fichiers Excel valides, mais ne disposent pas de la prise en charge de l'exportation CSV native et de la conversion JSON d'IronXL.

Quelle bibliothèque les développeurs devraient-ils choisir pour l'exportation d'Excel ? Pour les applications ASP.NET Core nécessitant une exportation Excel, la sélection de la bibliothèque dépend des exigences du projet : **Choisissez IronXLlorsque :** vous avez besoin d'une prise en charge multiformat (fichier XLSX, CSV, JSON, XML), d' [une assistance professionnelle](/csharp/excel/docs/) ou lorsque vous développez des applications commerciales nécessitant une compatibilité garantie avec les fonctionnalités complexes d'Excel au sein de projets ASP. **Choisissez ClosedXMLlorsque :** Vous développez des projets open source nécessitant une licence MIT avec génération de fichiers Excel basiques. **Choisissez EPPluslorsque :** les projets existants utilisent déjà EPPluset que le coût de la migration est supérieur aux considérations de licence. | Capacité| IronXL| ClosedXML| EPPlus| | --- | --- | --- | --- | | Exportation CSV/JSON/XML| ✓Natif| ✗| ✗| | Intégration de DataTable| ✓| ✓| ✓| | Support Professionnel | ✓Inclus| Communauté| Niveau payant| | Exigences du système| Aucun | Aucun | Aucun | ## Résumé La mise en œuvre de la fonctionnalité d'exportation ASP.NET vers Excel nécessite de choisir entre des méthodes HTML héritées et des solutions de bibliothèque modernes. En même temps, l'approche traditionnelle du type MIME utilisant les nouveaux `HtmlTextWriter` et `Response.AddHeader` pour la disposition du contenu crée des téléchargements fonctionnels, mais le format de fichier exporté déclenche des avertissements et manque de véritables fonctionnalités Excel. IronXL offre une véritable génération de fichiers Excel avec plusieurs formats de sortie, une gestion intuitive des feuilles de calcul et des classeurs, ainsi qu'une manipulation appropriée des lignes et des cellules de données. La bibliothèque élimine les surcharges `void VerifyRenderingInServerForm` et les modèles `object sender, EventArgs e` du code hérité. Pour des conseils de mise en œuvre, consultez la documentation IronXLet [exemples de code](/csharp/excel/examples/read-excel/). [Achetez une licence](licensing) pour déployer IronXLen production et générer des documents Excel professionnels que vos utilisateurs peuvent télécharger à partir du navigateur.
Commencez avec IronXL maintenant.
green arrow pointer

Questions Fréquemment Posées

Quelles sont les principales caractéristiques d'IronXL pour l'exportation vers Excel en ASP.NET Core ?

IronXL offre une génération et une manipulation transparentes de fichiers Excel, permettant aux développeurs d'exporter des données sans installation de Microsoft Excel. Il prend en charge différents formats tels que XLS, XLSX et CSV, et offre des fonctionnalités robustes pour le style, le formatage et la manipulation des données.

Comment IronXL se compare-t-il à ClosedXML pour les projets ASP.NET Core ?

IronXL offre un support plus étendu pour l'exportation de structures de données complexes et inclut des fonctionnalités telles que le stylisme et l'intégration d'images. ClosedXML, bien que convivial, peut manquer de certaines fonctionnalités avancées qu'offre IronXL, en particulier pour les applications à grande échelle.

IronXL est-il adapté à la création de rapports Excel à partir de bases de données en ASP.NET ?

Oui, IronXL est idéal pour générer des rapports Excel à partir de bases de données, offrant une exportation facile des données à partir de diverses sources de données, en veillant à ce que les fichiers résultants soient compatibles avec Microsoft Excel.

Quels sont les avantages d'utiliser IronXL par rapport à EPPlus ?

IronXL propose une API plus complète, de meilleures performances pour les grands ensembles de données et des fonctionnalités plus larges pour la création et l'édition de fichiers Excel, ce qui en fait un choix plus polyvalent pour les applications ASP.NET Core complexes.

IronXL peut-il gérer de grands ensembles de données efficacement?

IronXL est optimisé pour les performances et peut gérer efficacement de grands ensembles de données, garantissant un traitement et une exportation rapides des données sans compromettre la vitesse de l'application.

IronXL nécessite-t-il l'installation de Microsoft Office pour l'exportation vers Excel ?

Non, IronXL ne nécessite pas l'installation de Microsoft Office. Il fonctionne de manière indépendante, offrant des capacités complètes de création et de manipulation de fichiers Excel au sein des applications ASP.NET Core.

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