UTILISATION D'IRONXL

Comment exporter des données vers Excel dans Blazor en utilisant IronXL

Mise à jour janvier 29, 2024
Partager:

Ce tutoriel explique comment exporter des données vers des fichiers Excel dans une application Web Blazor avec une présentation attrayante, en utilisant la bibliothèque IronXL pour générer et télécharger des données dans des fichiers Excel.

IronXL : Bibliothèque Excel C

IronXL est une bibliothèque Excel C# conçue pour prendre en charge les tâches les plus fastidieuses dans Excel, celles qui sont répétées de nombreuses fois. IronXL est suffisamment puissant pour traiter les problèmes les plus complexes dans Excel. Il peut traiter facilement d'énormes ensembles de données et de grandes cellules, ce qui a été une tâche difficile pour de nombreux développeurs qui utilisent Excel pour leur travail. Cette bibliothèque les aide à développer des applications capables de lire et d'écrire directement des données Excel sans avoir besoin de s'interfacer avec des fichiers ou des bibliothèques Microsoft Office sur Windows.

La bibliothèque IronXL peut être utilisée pour créer une variété de feuilles de calcul telles que des factures, des rapports de dépenses ou des rapports de vente. En outre, il peut contribuer à rationaliser les processus d'analyse des données ou de création de rapports sur votre lieu de travail en automatisant des tâches telles que la fusion d'ensembles de données complexes. IronXL prend en charge plusieurs formats de fichiers.

La principale caractéristique d'IronXL permet aux développeurs de créer, d'éditer, de manipuler et de lire des fichiers Excel sans avoir besoin de Microsoft Excel. Cela signifie qu'il n'est pas nécessaire d'installer Microsoft Excel sur votre système. Cette fonctionnalité offre de nombreuses possibilités aux développeurs, en simplifiant l'intégration des données Excel dans les applications. Par exemple, un développeur peut générer automatiquement des rapports à partir d'une base de données et les exporter vers Excel pour les distribuer facilement. Pour un guide détaillé sur la lecture de fichiers Excel en C#, consultez ce document C# Lire un fichier Excel tutoriel.

using IronXL;

class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key;

        // Load an existing Excel file
        WorkBook workbook = WorkBook.Load("ExistingData.xlsx");
        WorkSheet sheet = workbook.DefaultWorkSheet;

        // For example, changing the sales value in cell C2
        if (sheet["C2"].IsEmpty == false)
        {
            double currentSales = sheet["C2"].DoubleValue;
            // Increase sales by 10%
            sheet["C2"].Value = currentSales * 1.10;
        }

        // Save the changes back to the same file or a new file
        workbook.SaveAs("UpdatedData.xlsx");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key;

        // Load an existing Excel file
        WorkBook workbook = WorkBook.Load("ExistingData.xlsx");
        WorkSheet sheet = workbook.DefaultWorkSheet;

        // For example, changing the sales value in cell C2
        if (sheet["C2"].IsEmpty == false)
        {
            double currentSales = sheet["C2"].DoubleValue;
            // Increase sales by 10%
            sheet["C2"].Value = currentSales * 1.10;
        }

        // Save the changes back to the same file or a new file
        workbook.SaveAs("UpdatedData.xlsx");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Exporter des données vers Excel à partir d'un projet Blazor

Suivons les étapes pour créer un fichier Excel à partir d'une application Web Blazor.

Conditions préalables

Pour exporter des fichiers Excel dans une application serveur Blazor, il y a quelques conditions préalables :

  1. Visual Studio (la dernière version)

  2. .NET Framework 6 ou 7

  3. Exécution de l'application Blazor Server dans Visual Studio

  4. Connexion Internet stable pour installer la bibliothèque IronXL

Installer la bibliothèque IronXL

Il est maintenant temps d'installer la bibliothèque IronXL à l'aide de la console NuGet Package Manager. Ouvrez la console du gestionnaire de paquets NuGet et écrivez la commande suivante :

Install-Package IronXL.Excel

Cette commande installera la dernière version d'IronXL dans l'application.

Code pour télécharger le fichier Excel exporté

Après l'installation d'IronXL, créez un dossier portant le nom "js" dans la section "wwwroot" de l'explorateur de solutions. Dans le dossier "js", créez un fichier JavaScript nommé "SaveAsFile.js", comme le montre la capture d'écran suivante.

Comment exporter des données vers Excel dans Blazor en utilisant IronXL, Figure 1 : Dossier js

js Folder

Ajoutez maintenant le code suivant dans le fichier "SaveAsFile.js". Cette fonction renverra aux utilisateurs les fichiers générés sous forme de flux.

function saveAsFile(filename, byteBase64) {
    var link = document.createElement('a');
    link.download = filename;
    link.href = "data:application/octet-stream;base64," + byteBase64;
    document.body.appendChild(link); // Needed for Firefox link
    link.click();
    document.body.removeChild(link);
}
JAVASCRIPT

Ensuite, ajoutez le chemin relatif vers le fichier "SaveAsFile.js" dans le fichier "_Host.cshtml". Cela permettra à l'application d'invoquer la fonction JavaScript définie précédemment.

 <script src="~/js/SaveAsFile.js"></script>
 <script src="~/js/SaveAsFile.js"></script>
HTML

Code pour exporter un fichier Excel

Créez une classe nommée "ExcelExport.cs" dans le dossier Data.

Comment exporter des données vers Excel dans Blazor en utilisant IronXL, Figure 2 : ExcelExport.cs

ExcelExport.cs

Écrivez le code suivant pour exporter des données dans le fichier "ExcelExport.cs".

using IronXL;
using Microsoft.JSInterop;
using System;

namespace Export_Excel_Blazor.Data
{
    public class ExcelExport
    {
        public void ExcelGenerate(IJSRuntime iJSRuntime)
        {
            byte [] fileContents;
            WorkBook xlsxWorkbook = WorkBook.Create(IronXL.ExcelFileFormat.XLSX);
            xlsxWorkbook.Metadata.Author = "IronXL";

            //Add a blank WorkSheet
            WorkSheet xlsxSheet = xlsxWorkbook.CreateWorkSheet("new_sheet");

            //Add data and styles to the new worksheet

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

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

            xlsxSheet ["A2"].Value = "Iron Rods";
            xlsxSheet ["A3"].Value = "Mobile Phones";
            xlsxSheet ["A4"].Value = "Chargers";

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

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

            fileContents = xlsxWorkbook.ToByteArray();

            iJSRuntime.InvokeAsync<ExcelExport>(
                "saveAsFile",
                "GeneratedExcel.xlsx",
                Convert.ToBase64String(fileContents)
            );
        }
    }
}
using IronXL;
using Microsoft.JSInterop;
using System;

namespace Export_Excel_Blazor.Data
{
    public class ExcelExport
    {
        public void ExcelGenerate(IJSRuntime iJSRuntime)
        {
            byte [] fileContents;
            WorkBook xlsxWorkbook = WorkBook.Create(IronXL.ExcelFileFormat.XLSX);
            xlsxWorkbook.Metadata.Author = "IronXL";

            //Add a blank WorkSheet
            WorkSheet xlsxSheet = xlsxWorkbook.CreateWorkSheet("new_sheet");

            //Add data and styles to the new worksheet

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

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

            xlsxSheet ["A2"].Value = "Iron Rods";
            xlsxSheet ["A3"].Value = "Mobile Phones";
            xlsxSheet ["A4"].Value = "Chargers";

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

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

            fileContents = xlsxWorkbook.ToByteArray();

            iJSRuntime.InvokeAsync<ExcelExport>(
                "saveAsFile",
                "GeneratedExcel.xlsx",
                Convert.ToBase64String(fileContents)
            );
        }
    }
}
Imports IronXL
Imports Microsoft.JSInterop
Imports System

Namespace Export_Excel_Blazor.Data
	Public Class ExcelExport
		Public Sub ExcelGenerate(ByVal iJSRuntime As IJSRuntime)
			Dim fileContents() As Byte
			Dim xlsxWorkbook As WorkBook = WorkBook.Create(IronXL.ExcelFileFormat.XLSX)
			xlsxWorkbook.Metadata.Author = "IronXL"

			'Add a blank WorkSheet
			Dim xlsxSheet As WorkSheet = xlsxWorkbook.CreateWorkSheet("new_sheet")

			'Add data and styles to the new worksheet

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

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

			xlsxSheet ("A2").Value = "Iron Rods"
			xlsxSheet ("A3").Value = "Mobile Phones"
			xlsxSheet ("A4").Value = "Chargers"

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

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

			fileContents = xlsxWorkbook.ToByteArray()

			iJSRuntime.InvokeAsync(Of ExcelExport)("saveAsFile", "GeneratedExcel.xlsx", Convert.ToBase64String(fileContents))
		End Sub
	End Class
End Namespace
VB   C#

Dans l'exemple ci-dessus, la bibliothèque IronXL crée un fichier Excel WorkBook (livre de travail) au format XLSX. IronXL prend également en charge le format XLS. Un WorkBook est nécessaire pour avoir un Feuille de travail ajouté. L'étape suivante consiste à remplir cette feuille avec des données fictives.

Ensuite, tout le contenu de WorkBook est converti en tableau d'octets et IJSRuntime est déclenché pour télécharger le fichier avec les paramètres suivants : le nom de la fonction JavaScript, le nom du fichier exporté, et le tableau d'octets de WorkBook.

Créer un composant Razor

Créez un composant Razor nommé "ExportExcel.razor" dans le dossier Pages.

Comment exporter des données vers Excel dans Blazor en utilisant IronXL, Figure 3 :

ExcelExport.cs

Ensuite, remplacez le code source de "ExportExcel.razor" par celui donné ci-dessous.

@page "/export"
@using Export_Excel_Blazor.Data
@inject IJSRuntime JS

<h1>IronXL Export Excel File</h1>

<p>Intuitive C# & VB.NET Excel API & No need to install MS Office or Excel Interop</p>

<button class="btn btn-primary" @onclick="ExcelGeneration">Create Excel File</button>

@code {

    private void ExcelGeneration()
    {
        ExcelExport excelExport = new ExcelExport();
        excelExport.ExcelGenerate(JS);
    }
}
@page "/export"
@using Export_Excel_Blazor.Data
@inject IJSRuntime JS

<h1>IronXL Export Excel File</h1>

<p>Intuitive C# & VB.NET Excel API & No need to install MS Office or Excel Interop</p>

<button class="btn btn-primary" @onclick="ExcelGeneration">Create Excel File</button>

@code {

    private void ExcelGeneration()
    {
        ExcelExport excelExport = new ExcelExport();
        excelExport.ExcelGenerate(JS);
    }
}
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: @page "/export" using Export_Excel_Blazor.Data inject IJSRuntime JS <h1> IronXL Export Excel File</h1> <p> Intuitive C# & VB.NET Excel API & No need to install MS Office or Excel Interop</p> <button class="btn btn-primary" onclick="ExcelGeneration"> Create Excel File</button> @code
"btn btn-primary" onclick="ExcelGeneration"> Create Excel File</button> code
Private Friend page "/export" [using] Export_Excel_Blazor.Data inject IJSRuntime JS (Of h1) IronXL Export Excel File</h1> (Of p) Intuitive C# & VB.NET Excel API And No need [to] install MS Office [or] Excel Interop</p> <button Class="btn btn-primary" onclick

	Private Sub ExcelGeneration()
		Dim excelExport As New ExcelExport()
		excelExport.ExcelGenerate(JS)
	End Sub
End Class
VB   C#

Dans le code HTML ci-dessus, créez un bouton avec une propriété onclick pointant vers la fonction ExcelGeneration. Ensuite, la fonction ExcelGeneration à l'intérieur de la section @code est ajoutée avec du code C# pour gérer la fonction d'exportation.

Ajouter un lien de navigation

Ajoutez le code suivant dans le fichier "NavMenu.razor". Il ajoutera une barre de navigation pour accéder à la page Génération Excel.

<li class="nav-item px-3">
    <NavLink class="nav-link" href="export">
        <span class="oi oi-list-rich" aria-hidden="true"></span> Export Excel
    </NavLink>
</li>
<li class="nav-item px-3">
    <NavLink class="nav-link" href="export">
        <span class="oi oi-list-rich" aria-hidden="true"></span> Export Excel
    </NavLink>
</li>
HTML

Projet d'exécution

Enfin, exécutez le projet. Vous obtiendrez le résultat suivant dans le navigateur. Allez dans le menu naval "Exporter Excel" et cliquez sur le bouton "Créer un fichier Excel".

Comment exporter des données vers Excel dans Blazor en utilisant IronXL, Figure 4 : ExportExcel.razor

ExportExcel.razor

L'application exporte les données vers une feuille de calcul Excel et télécharge le fichier XLSX sur votre machine.

Comment exporter des données vers Excel dans Blazor en utilisant IronXL, Figure 5 : Télécharger Excel

Télécharger Excel

Feuille de calcul Excel générée

Voici l'aperçu du fichier Excel généré.

Comment exporter des données vers Excel dans Blazor en utilisant IronXL, Figure 6 : Excel généré

Généré par Excel

Résumé

Cet article a passé en revue le processus de génération et d'exportation de fichiers Excel dans l'application Blazor à l'aide d'IronXL. IronXL est un outil formidable pour les développeurs .NET qui doivent manipuler des fichiers Excel dans le logiciel sans installer Microsoft Office sur la machine. IronXL offre un moyen beaucoup plus rapide de construire des fichiers Excel dans .NET.

IronXL est basé sur le langage C# et permet de développer rapidement et facilement du code pour créer des interfaces utilisateur interactives et très réactives dans l'application de tableur la plus populaire au monde. Microsoft Interop est une bibliothèque relativement plus lente qui nécessite un codage plus complexe. Microsoft Interop est plus lent qu'IronXL car il nécessite l'utilisation de COM pour la lecture et l'écriture des données. Explorez d'autres articles liés à IronXL sur comment exporter des fichiers Excelcontrôler la façon dont les cellules sont affichées dans un classeur Excel à l'aide de la fonction quadrillagela gestion des cartes, et l'alignement du texte, la taille de la police, la couleur.

< PRÉCÉDENT
Tutoriel sur l'analyseur CSV en C# (étape par étape)
SUIVANT >
Comment générer un fichier Excel sur Razor Pages