Passer au contenu du pied de page
UTILISATION D'IRONXL

Comment générer un fichier Excel sur Razor Pages

Razor Pages propose une approche moderne de la création de pages web. Dans Razor Pages, le code source qui génère la page web est écrit en C# au lieu d'être généré par un serveur.

Pour une manipulation efficace des fichiers Excel, la bibliothèque IronXL est recommandée de préférence à d'autres solutions comme le package NPOI du projet Java POI (notamment utilisé avec les fichiers PowerPoint) et Office Interop. IronXL est une bibliothèque riche en fonctionnalités et facile à utiliser, qui ne nécessite pas Microsoft Office et prend en charge plusieurs versions de .NET.

Cet article montre comment utiliser la bibliothèque IronXL C# pour générer et exporter des feuilles de calcul Excel avec des données fictives et des en-têtes de lignes dans Razor Pages.

IronXL : Bibliothèque Excel C

IronXL est une bibliothèque Excel C# qui propose des méthodes et des fonctions permettant de traiter de grands ensembles de données en utilisant le traitement parallèle pour accroître la puissance de calcul. Il est convivial car il ne nécessite pas de comprendre son fonctionnement interne et prend en charge les fichiers XLS et XLSX.

IronXL est idéal pour importer, exporter, créer des formules Excel et des documents bureautiques sans nécessiter l'installation de Microsoft Office.

Apprenez à importer et exporter des fichiers Excel dans Razor Pages à l'aide d'IronXL.

Générer un fichier Excel dans Razor Pages

Pour créer des feuilles Excel dans Razor Pages, commencez par ouvrir Visual Studio, créer une application Web ASP.NET Core et installer IronXL.

Prérequis

La configuration pour créer des fichiers Excel dans Razor Pages nécessite :

  1. Visual Studio (dernière version)
  2. .NET Framework 6 ou 7
  3. Application Web .NET Core dans Visual Studio

Installer la bibliothèque IronXL

Installez IronXL à l'aide de la console du gestionnaire de packages NuGet. Saisissez cette commande pour installer la bibliothèque dans une application Web .NET Core :

Install-Package IronXL.Excel

Code pour générer un fichier Excel

Voici comment écrire le code. Ouvrez le fichier " Index.cs " dans le dossier Pages et ajoutez la méthode suivante :

public FileResult OnPostExport()
{
    // Create a new WorkBook with XLSX format
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
    // Create a new WorkSheet named "data"
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    // Add headers to the new worksheet
    workSheet["A1"].Value = "Product EN";
    workSheet["B1"].Value = "SKU";
    workSheet["C1"].Value = "Customer";

    // Make header text bold
    workSheet["A1:C1"].Style.Font.Bold = true;

    // Add dummy data to the worksheet
    workSheet["A2"].Value = "Iron Rods";
    workSheet["A3"].Value = "Mobile Phones";
    workSheet["A4"].Value = "Chargers";

    workSheet["B2"].Value = "105";
    workSheet["B3"].Value = "285";
    workSheet["B4"].Value = "301";

    workSheet["C2"].Value = "Adam";
    workSheet["C3"].Value = "Ellen";
    workSheet["C4"].Value = "Tom";

    // Convert the WorkBook to a byte array Stream for download
    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
public FileResult OnPostExport()
{
    // Create a new WorkBook with XLSX format
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
    // Create a new WorkSheet named "data"
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    // Add headers to the new worksheet
    workSheet["A1"].Value = "Product EN";
    workSheet["B1"].Value = "SKU";
    workSheet["C1"].Value = "Customer";

    // Make header text bold
    workSheet["A1:C1"].Style.Font.Bold = true;

    // Add dummy data to the worksheet
    workSheet["A2"].Value = "Iron Rods";
    workSheet["A3"].Value = "Mobile Phones";
    workSheet["A4"].Value = "Chargers";

    workSheet["B2"].Value = "105";
    workSheet["B3"].Value = "285";
    workSheet["B4"].Value = "301";

    workSheet["C2"].Value = "Adam";
    workSheet["C3"].Value = "Ellen";
    workSheet["C4"].Value = "Tom";

    // Convert the WorkBook to a byte array Stream for download
    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
Public Function OnPostExport() As FileResult
	' Create a new WorkBook with XLSX format
	Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
	' Create a new WorkSheet named "data"
	Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")

	' Add headers to the new worksheet
	workSheet("A1").Value = "Product EN"
	workSheet("B1").Value = "SKU"
	workSheet("C1").Value = "Customer"

	' Make header text bold
	workSheet("A1:C1").Style.Font.Bold = True

	' Add dummy data to the worksheet
	workSheet("A2").Value = "Iron Rods"
	workSheet("A3").Value = "Mobile Phones"
	workSheet("A4").Value = "Chargers"

	workSheet("B2").Value = "105"
	workSheet("B3").Value = "285"
	workSheet("B4").Value = "301"

	workSheet("C2").Value = "Adam"
	workSheet("C3").Value = "Ellen"
	workSheet("C4").Value = "Tom"

	' Convert the WorkBook to a byte array Stream for download
	Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx")
End Function
$vbLabelText   $csharpLabel

Dans ce code, un nouveau WorkBook Excel est créé et contient une seule WorkSheet . La feuille de calcul est remplie de données fictives, et le fichier généré est renvoyé au serveur avec :

  • Le WorkBook est converti en Stream pour être téléchargé sous forme de fichier.
  • Le type MIME est défini.
  • Un nom est spécifié pour le fichier à télécharger.

Créez un bouton pour télécharger le fichier Excel

Remplacez le code existant dans " Index.cshtml " par le code suivant :

@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">IronXL Generate Excel File</h1>
    <p class="m-5">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Generate Excel File!</button>
    </form>
</div>
@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}

<div class="text-center">
    <h1 class="display-4">IronXL Generate Excel File</h1>
    <p class="m-5">IronXL is an Excel Library for C# that allows developers to read and edit Excel data from XLS and XLSX documents without using Microsoft.Office.Interop.Excel</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Generate Excel File!</button>
    </form>
</div>
HTML

Ce code HTML crée un formulaire avec asp-page-handler défini sur " Export ", permettant à l'application d'exporter le fichier Excel vers la machine locale lorsque l'utilisateur clique sur le bouton " Générer le fichier Excel ! ", déclenchant un téléchargement dans le navigateur.

Exécuter le projet

Exécutez le projet et vous verrez un écran dans votre navigateur. Cliquez sur le bouton vert pour télécharger le fichier Excel.

Comment générer un fichier Excel avec Razor Pages ? Figure 1 : Génération de feuilles Excel avec IronXL IronXL génère des feuilles Excel

Après avoir cliqué sur " Générer le fichier Excel ! ", le fichier sera téléchargé.

Comment générer un fichier Excel avec Razor Pages ? Figure 2 : Fichier téléchargé avec IronXL Fichier téléchargé IronXL

Ouvrez le fichier Excel généré

Le contenu du fichier Excel généré correspond parfaitement à la sortie du code, avec une mise en forme impeccable. Un aperçu du fichier Excel généré est affiché ci-dessous.

Comment générer un fichier Excel avec Razor Pages ? Figure 3 : Fichier généré par IronXL Fichier généré par IronXL

IronXL meilleur que ses concurrents

IronXL est un outil supérieur pour travailler avec les formats XLS et XLSX sans les limitations de NPOI, qui est plus lent car basé sur Java, tandis qu'IronXL est en C#. Dans les applications ASP.NET Core générant de grandes feuilles de calcul/plusieurs feuilles de calcul, privilégiez IronXL à POI.

IronXL permet de créer et de modifier des fichiers Excel sans Microsoft Office. Contrairement à Microsoft Interop, IronXL n'a pas besoin d'utiliser ActiveX pour les opérations ou les exportations Excel. Il permet également d'exporter des fichiers CSV au format Excel.

IronXL offre également de nombreuses fonctionnalités pour interagir avec les fichiers Excel, notamment la conversion entre les formats populaires , l'insertion de fonctions mathématiques , l'ajout de graphiques et l'insertion d'images .

Conclusion

Cet article présente l'utilisation d'IronXL pour générer un fichier Excel dans Razor Pages sans avoir besoin de Microsoft Excel ActiveX et facilite le téléchargement des fichiers.

Explorez d'autres tutoriels sur la création de fichiers Excel .

IronXL est gratuit pour le développement non commercial. Un essai gratuit est disponible pour les tests de production. Consultez les plans tarifaires pour plus de détails sur les prix et les licences.

Questions Fréquemment Posées

Comment puis-je générer un fichier Excel dans Razor Pages sans utiliser Interop?

Vous pouvez générer un fichier Excel dans Razor Pages sans utiliser Interop en utilisant la bibliothèque IronXL. Cette bibliothèque vous permet de créer et manipuler des fichiers Excel directement en C#, sans avoir besoin de Microsoft Office, en créant un WorkBook et en ajoutant des données à une WorkSheet.

Quelles sont les étapes impliquées dans l'installation de IronXL pour un projet Razor Pages?

Pour installer IronXL pour un projet Razor Pages, vous pouvez utiliser la console du gestionnaire de packages NuGet dans Visual Studio. Exécutez la commande Install-Package IronXL.Excel pour ajouter la bibliothèque à votre projet.

Puis-je utiliser IronXL pour exporter des données depuis une application Razor Pages?

Oui, IronXL peut être utilisé pour exporter des données depuis une application Razor Pages. Vous pouvez convertir vos données au format Excel, puis utiliser Razor Pages pour retransmettre ces données au client sous forme de fichier téléchargeable.

Quels sont les avantages d'utiliser IronXL par rapport à Microsoft Interop pour générer des fichiers Excel ?

IronXL offre plusieurs avantages par rapport à Microsoft Interop, y compris des performances plus rapides, aucune exigence d'installation de Microsoft Office, et la capacité de gérer efficacement de grands ensembles de données grâce au traitement parallèle.

Est-il possible de gérer de grandes ensembles de données Excel dans Razor Pages en utilisant IronXL?

Oui, IronXL est capable de gérer efficacement de grandes ensembles de données Excel. Il prend en charge le traitement parallèle, ce qui peut améliorer la performance et la vitesse lors de la manipulation de données étendues.

IronXL prend-il en charge différents formats de fichiers Excel?

IronXL prend en charge les formats de fichiers XLS et XLSX, permettant une manipulation complète des fichiers Excel, y compris l'importation, l'exportation, et le formatage des données.

Existe-t-il des options gratuites pour utiliser IronXL en développement?

IronXL est disponible gratuitement pour le développement non commercial. Un essai gratuit est fourni pour les tests de production, avec divers plans tarifaires disponibles pour une utilisation commerciale.

Comment puis-je déclencher un téléchargement de fichier Excel dans Razor Pages en utilisant IronXL?

Pour déclencher un téléchargement de fichier Excel dans Razor Pages en utilisant IronXL, créez un WorkBook, remplissez-le avec des données, puis convertissez-le en un tableau d'octets. Utilisez la méthode File de Razor Pages pour diffuser le tableau d'octets en tant que fichier téléchargeable pour l'utilisateur.

Qu'est-ce qui fait de IronXL un choix préférable par rapport à d'autres bibliothèques comme NPOI?

IronXL est souvent préféré par rapport aux bibliothèques comme NPOI en raison de son implémentation native en C#, qui offre une performance plus rapide, une facilité d'utilisation, et aucune dépendance aux composants Java, ce qui en fait un choix idéal pour les 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