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. IronXL admite 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 enlace C# 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:
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)
);
}
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
En el ejemplo anterior, la biblioteca IronXL crea un Excel Libro de trabajo en formato XLSX. IronXL también es compatible con el formato XLS. Se necesita un WorkBook
para tener un Hoja 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);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
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 en cómo exportar archivos ExcelControla la forma en que se muestran las celdas en un libro de Excel con cuadrículasgestión de gráficos y alineación del texto, tamaño de letra, color.
9 productos API .NET para sus documentos de oficina