Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
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.
Tableau d'octets
en C#InvokeAsync
Convert.ToBase64String
dans le projet BlazorIronXL 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
Suivons les étapes pour créer un fichier Excel à partir d'une application Web Blazor.
Pour exporter des fichiers Excel dans une application serveur Blazor, il y a quelques conditions préalables :
Visual Studio (la dernière version)
.NET Framework 6 ou 7
Exécution de l'application Blazor Server dans Visual Studio
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.
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.
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);
}
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>
Créez une classe nommée "ExcelExport.cs" dans le dossier Data.
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
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éez un composant Razor nommé "ExportExcel.razor" dans le dossier Pages.
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
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.
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>
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".
ExportExcel.razor
L'application exporte les données vers une feuille de calcul Excel et télécharge le fichier XLSX sur votre machine.
Télécharger Excel
Voici l'aperçu du fichier Excel généré.
Généré par Excel
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.
9 produits de l'API .NET pour vos documents de bureau