Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Este tutorial explicará cómo exportar datos a archivos Excel en una Aplicación Web Blazor con una presentación atractiva, utilizando la librería IronXL para generar y descargar datos en archivos Excel.
Matriz de bytes
en C#InvokeAsync
Convert.ToBase64String
en el proyecto BlazorIronXL es una biblioteca de Excel en C# diseñada para ocuparse de las tareas que más tiempo consumen en Excel, aquellas que se repiten muchas veces. IronXL es lo suficientemente potente como para manejar incluso los problemas más complejos en Excel. Puede trabajar con conjuntos de datos enormes y celdas grandes con facilidad, lo que ha sido una tarea difícil para muchos desarrolladores que utilizan Excel para su trabajo. Esta biblioteca les ayuda a desarrollar aplicaciones que pueden leer y escribir directamente datos de Excel sin necesidad de interactuar con archivos o bibliotecas de Microsoft Office en Windows.
La biblioteca IronXL puede utilizarse para crear diversas hojas de cálculo, como facturas, informes de gastos o informes de ventas. Además, puede ayudar a agilizar el análisis de datos o los procesos de elaboración de informes en su lugar de trabajo automatizando tareas como la fusión de conjuntos de datos complejos. IronXLadmite varios formatos de archivo.
La principal característica de IronXL permite a los desarrolladores crear, editar, manipular y leer archivos de Excel sin necesidad de Microsoft Excel. Esto significa que no es necesario instalar Microsoft Excel en su sistema. Esta funcionalidad ofrece diversas posibilidades a los desarrolladores, simplificando la integración de los datos de Excel en las aplicaciones. Por ejemplo, un desarrollador puede generar automáticamente informes a partir de una base de datos y exportarlos a Excel para facilitar su distribución. Para obtener una guía detallada sobre la lectura de archivos Excel en C#, consulte este enlaceC# Leer archivo Excel tutorial.
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
Sigamos los pasos para crear un archivo Excel desde una Aplicación Web Blazor.
Para exportar archivos Excel en una aplicación de servidor Blazor, existen algunos requisitos previos:
Visual Studio(la última versión)
.NET Framework 6 ó 7
Ejecución de la aplicación Blazor Server en Visual Studio
Ahora, es el momento de instalar la biblioteca IronXL utilizando la consola del gestor de paquetes NuGet. Abra la consola del gestor de paquetes NuGet y escriba el siguiente comando:
Install-Package IronXL.Excel
Este comando instalará la última versión de IronXL en la aplicación.
Después de instalar IronXL, cree una carpeta con el nombre "js" en la sección "wwwroot" desde el Explorador de soluciones. En la carpeta "js", cree un archivo JavaScript con el nombre "SaveAsFile.js." como se muestra en la siguiente captura de pantalla.
Carpeta js
Ahora, añade el siguiente código en el archivo "SaveAsFile.js". Esta función devolverá los archivos generados a los usuarios como un flujo.
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);
}
A continuación, añada la ruta relativa al archivo "SaveAsFile.js" en el archivo "_Host.cshtml". Esto permitirá a la aplicación invocar la función JavaScript previamente definida.
<script src="~/js/SaveAsFile.js"></script>
<script src="~/js/SaveAsFile.js"></script>
Cree una clase llamada "ExcelExport.cs" en la carpeta Data.
ExcelExport.cs
Escriba el siguiente código para exportar datos en el archivo "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
En el ejemplo anterior, la biblioteca IronXL crea un ExcelLibro de trabajo en formato XLSX. IronXL también es compatible con el formato XLS. Se necesita un WorkBook
para tener unHoja de trabajo añadido. El siguiente paso es rellenar esta hoja con datos ficticios.
Después de eso, todo el contenido del WorkBook
se convierte a la matriz de bytes y IJSRuntime
se activa para descargar el archivo con los siguientes parámetros: el nombre de la función JavaScript, el nombre del archivo para el archivo exportado, y la matriz de bytes del WorkBook
.
Cree un componente Razor llamado "ExportExcel.razor" en la carpeta Pages.
ExcelExport.cs
A continuación, sustituya el código fuente de "ExportExcel.razor" por el que se indica a continuación.
@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
En el código HTML anterior, cree un botón con una propiedad onclick
que apunte a la función ExcelGeneration
. A continuación, se añade la función ExcelGeneration
dentro de la sección @code
con código C# para manejar la función de exportación.
Añada el siguiente fragmento de código en el archivo "NavMenu.razor". Añadirá un menú de barra de navegación para llegar a la página de Generación de 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>
Por último, ejecute el proyecto. Verá el siguiente resultado en el navegador. Vaya al menú naval "Exportar Excel" y haga clic en el botón "Crear archivo Excel".
ExportExcel.razor
La aplicación exportará los datos a una hoja de cálculo Excel y descargará el archivo XLSX en su máquina.
Descargar Excel
Esta es la vista previa del archivo Excel generado.
Excel generado
Este artículo recorrió el proceso de generación y exportación de archivos Excel en la aplicación Blazor utilizando IronXL. IronXL es una gran herramienta para desarrolladores .NET que tienen que manipular archivos Excel en el software sin instalar Microsoft Office en la máquina. IronXL proporciona una forma mucho más rápida de construir archivos de Excel en .NET.
IronXL se basa en el lenguaje C# y proporciona un desarrollo de código rápido y sencillo para crear interfaces de usuario interactivas y con gran capacidad de respuesta en la aplicación de hojas de cálculo más popular del mundo. Microsoft Interop es una biblioteca relativamente más lenta que requiere una codificación más compleja. Microsoft Interop es más lento que IronXL porque requiere el uso de COM para leer y escribir datos. Ver más artículos relacionados con IronXL encómo exportar archivos ExcelControla la forma en que se muestran las celdas en un libro de Excel concuadrículasgestión de gráficos yalineación del texto, tamaño de letra, color.
9 productos API .NET para sus documentos de oficina