UTILISATION D'IRONXL

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

Regan Pun
Regan Pun
novembre 14, 2022
Mise à jour janvier 29, 2024
Partager:

Introduction

Les pages Razor sont une nouvelle façon de construire des pages web. Avec Razor Pages, le code source qui rend la page web est construit en C# au lieu d'être généré par une page côté serveur.

Pour travailler efficacement avec des fichiers Excel, la bibliothèque IronXL est recommandée par rapport à d'autres bibliothèques telles que le projet POI Java, le package NPOI (qui peut également être utilisé avec des fichiers PowerPoint) et Office Interop. Elle offre une bibliothèque riche en fonctionnalités qui est simple, facile à utiliser, et ne nécessite pas Microsoft Office. Cette bibliothèque devrait également prendre en charge plusieurs versions de .NET.

Cet article va démontrer 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 (modèle de page).

IronXL : C# ; Bibliothèque Excel

IronXL est une bibliothèque Excel C# qui fournit des méthodes et des fonctions permettant d'opérer sur de grands ensembles de données. Il utilise le traitement parallèle pour obtenir une plus grande puissance de calcul. Il est facile à utiliser pour les programmeurs car il ne nécessite aucune connaissance sur le fonctionnement du processus en coulisses. Il prend en charge les fichiers XLS et XLSX.

IronXL prend également en charge l'importation et l'exportation de fichiers Excel, ainsi que la création de formules Excel et de documents Office. C'est la solution idéale pour ceux qui ne veulent pas installer Microsoft Office sur leur machine.

Voyons comment importer et exporter des fichiers Excel dans Razor Pages avec IronXL.

Générer un fichier Excel dans Razor Pages

Pour créer des feuilles Excel dans Razor Pages, ouvrez Visual Studio, créez une application web ASP.NET Core et installez IronXL.

Conditions préalables

Pour créer des fichiers Excel dans Razor Pages, il y a quelques conditions préalables :

  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

Vous pouvez l'installer à l'aide de la console NuGet Package Manager. Ouvrez la console et écrivez la commande suivante pour installer la bibliothèque IronXL for .NET dans une application Web .NET Core.

Install-Package IronXL.Excel

Code pour la génération d'un fichier Excel

Il est maintenant temps d'écrire du code. Ouvrez le fichier "Index.cs" du dossier Pages et ajoutez la méthode suivante :

public FileResult OnPostExport()
{
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    //Add data and styles to the new worksheet

    workSheet ["A1"].Value = "Product EN";
    workSheet ["B1"].Value = "SKU";
    workSheet ["C1"].Value = "Customer";

    workSheet ["A1:C1"].Style.Font.Bold = true;

    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";

    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
public FileResult OnPostExport()
{
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    //Add data and styles to the new worksheet

    workSheet ["A1"].Value = "Product EN";
    workSheet ["B1"].Value = "SKU";
    workSheet ["C1"].Value = "Customer";

    workSheet ["A1:C1"].Style.Font.Bold = true;

    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";

    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx");
}
Public Function OnPostExport() As FileResult
	Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)
	Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")

	'Add data and styles to the new worksheet

	workSheet ("A1").Value = "Product EN"
	workSheet ("B1").Value = "SKU"
	workSheet ("C1").Value = "Customer"

	workSheet ("A1:C1").Style.Font.Bold = True

	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"

	Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Grid.xlsx")
End Function
$vbLabelText   $csharpLabel

Dans le code ci-dessus, un nouveau WorkBook Excel est créé, et il contient un WorkSheet. Ensuite, la feuille est remplie avec des données fictives et renvoie le fichier généré dans une réponse du serveur avec les paramètres suivants :

  • Convertissez le WorkBook en Stream (car il est important de convertir le fichier en flux avant de le télécharger).
  • Définir le type de données
  • Spécifiez le nom du fichier à télécharger.

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

Remplacez le code existant dans "Index.cshtml" par le code ci-dessous :

@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# and 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# and 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

Dans le code HTML ci-dessus, créez une balise de formulaire dont la propriété "asp-page-handler" est définie sur "Export". Cela permettra à l'application d'exporter un fichier Excel sur la machine locale. De plus, créez un bouton avec le texte "Générer un fichier Excel !". Lorsque l'utilisateur clique sur ce bouton, le navigateur télécharge le fichier Excel généré.

Exécuter le projet

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

Comment générer un fichier Excel sur Razor Pages, Figure 1 : IronXL Générer des feuilles Excel

Générer des feuilles Excel avec IronXL

Vous verrez le fichier téléchargé en bas lorsque vous cliquerez sur le bouton "Générer le fichier Excel !".

Comment Générer un Fichier Excel sur Razor Pages, Figure 2 : Fichier Téléchargé avec IronXL

Fichier Téléchargé IronXL

Ouvrir le fichier Excel généré

Le contenu du fichier Excel généré est conforme à ce qui est écrit dans le code, avec un formatage parfait. Vous pouvez voir l'instantané du fichier Excel généré ci-dessous.

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

Fichier Généré par IronXL

IronXL meilleur que ses concurrents

La bibliothèque IronXL est un outil plus puissant pour travailler avec Excel, qui supporte aussi bien XLS que XLSX et n'a pas les limitations de NPOI. NPOI fonctionne beaucoup plus lentement qu'IronXL, car il est écrit en Java et non en C#. Par conséquent, vous voudrez opter pour IronXL au lieu de POI lorsque vous souhaitez générer de grandes ou plusieurs feuilles de calcul dans des applications ASP.NET Core.

IronXL est une excellente bibliothèque pour créer et modifier des fichiers Excel sans utiliser Microsoft Office. Contrairement à Microsoft Interop, IronXL n'a pas besoin d'appeler l'ActiveX de Microsoft Excel en arrière-plan pour effectuer des opérations Excel et pour exporter vers Excel. IronXL peut fonctionner sans la suite Microsoft Office. IronXL peut également exporter des fichiers CSV au format Excel.

En outre, IronXL offre également une large gamme de fonctionnalités pour interagir avec les fichiers Excel, y compris la conversion entre les formats populaires, l'insertion de fonctions mathématiques, et même l'ajout de graphiques et l'insertion d'images.

Conclusion

Cet article a présenté comment utiliser IronXL pour générer un fichier Excel dans Razor Pages, d'une manière qui ne nécessite pas d'appeler Microsoft Excel ActiveX et de télécharger le fichier.

Visitez le lien suivant pour plus de tutoriels sur la création de fichiers Excel.

L'utilisation d'IronXL est gratuite à des fins de développement non commerciales. Une version d'essai gratuite est disponible pour des tests en production. Consultez les plans tarifaires pour plus de détails sur les prix et les licences.

Regan Pun
Ingénieur logiciel
Regan est diplômé de l'université de Reading, où il a obtenu une licence en ingénierie électronique. Avant de rejoindre Iron Software, il s'était concentré sur une seule tâche. Ce qu'il apprécie le plus chez Iron Software, c'est la diversité des tâches qu'il peut accomplir, qu'il s'agisse d'apporter une valeur ajoutée aux ventes, à l'assistance technique, au développement de produits ou à la commercialisation. Il aime comprendre comment les développeurs utilisent la bibliothèque d'Iron Software et utiliser ces connaissances pour améliorer continuellement la documentation et développer les produits.
< PRÉCÉDENT
Comment exporter des données vers Excel dans Blazor en utilisant IronXL
SUIVANT >
Comment utiliser un analyseur CSV en C#