Saltar al pie de página
USANDO IRONXL

Cómo exportar CSV y Excel en Razor

¿Buscando una forma de exportar datos a un archivo Excel usando Razor Pages? Este artículo instruye sobre cómo hacerlo utilizando IronXL para .NET.

1. IronXL

IronXL es una biblioteca .NET utilizada para trabajar con archivos Excel. Está construida sobre OpenXML SDK y proporciona una API simple para leer, escribir y manipular hojas de cálculo Excel. IronXL se puede usar en una variedad de aplicaciones .NET, incluidas Aplicaciones Web, Aplicaciones de Escritorio y Aplicaciones de Consola. IronXL proporciona una variedad de características para trabajar con documentos Excel, incluidas la capacidad de leer y escribir datos en celdas individuales, crear gráficos y realizar cálculos complejos. También soporta características avanzadas de Excel como tablas dinámicas, formato condicional y validación de datos.

La exportación de datos a archivos Excel y CSV es una tarea común en el desarrollo web, y Razor e IronXL facilitan su realización. Con IronXL, los desarrolladores pueden crear fácilmente hojas de cálculo Excel y guardarlas en un archivo o flujo. Razor puede entonces usarse para generar contenido dinámico que incluye enlaces al documento Excel, permitiendo a los usuarios descargarlos directamente desde la página web. El formato de archivo CSV también puede generarse utilizando IronXL y ser descargado de manera similar usando Razor. Esto hace que sea sencillo crear informes y otros contenidos basados en datos que pueden compartirse fácilmente con otros. En general, la combinación de Razor e IronXL .NET Core Razor Pages proporciona un conjunto de herramientas poderoso para los desarrolladores web que buscan crear páginas web dinámicas y basadas en datos.

2. Requisitos previos

Antes de usar Razor en Visual Studio, hay algunos requisitos previos que los usuarios deben tener. Aquí hay algunos de los importantes:

  1. Como usuario de IronXL, necesita tener instalado Visual Studio en su sistema informático. Puede descargar Visual Studio Community de forma gratuita desde el sitio web oficial de Microsoft.
  2. También necesita tener instalado el SDK de .NET Core en su computadora. Puede descargar la última versión del SDK de .NET Core desde el sitio web oficial de Microsoft.
  3. Su entorno de Desarrollo Web debe estar configurado antes de comenzar a trabajar con Razor View.

3. Creación de un nuevo proyecto de Visual Studio

Para crear un nuevo proyecto de Visual Studio, siga estos pasos:

  1. Abre Visual Studio.
  2. Haga clic en "Crear un Nuevo Proyecto" en la ventana de inicio, o haga clic en "Archivo" > "Nuevo" > "Proyecto" en la barra de menú.

Cómo exportar CSV y Excel en Razor, Figura 1: Ventana de inicio de Visual Studio Ventana de inicio de Visual Studio

  1. Seleccione el tipo de proyecto que desea crear, para usar Razor Pages, seleccione Aplicación Web ASP.NET Core y haga clic en Siguiente.

Cómo exportar CSV y Excel en Razor, Figura 2: Crear una nueva Aplicación Web de .NET Core en Visual Studio Crear una nueva Aplicación Web de .NET Core en Visual Studio

  1. Aparecerá una nueva ventana, escriba el nombre y ubicación de su nuevo proyecto. Luego haga clic en Siguiente.

Cómo exportar CSV y Excel en Razor, Figura 3: Configurar el nuevo proyecto Configurar el nuevo proyecto

  1. Ahora en la nueva ventana seleccione su Framework objetivo, marque la opción de configurar para HTTPS y haga clic en crear.
  2. Así de fácil, su nuevo Proyecto de Aplicación Web ASP.NET Core de Visual Studio está creado.

4. Instalar IronXL

La Biblioteca de IronXL puede descargarse e instalarse de diferentes maneras.

Estas son:

  • Usando paquetes NuGet de Visual Studio.
  • Usando la Línea de Comandos de Visual Studio.

4.1 Uso de Visual Studio

Para instalar la biblioteca IronXL, el enfoque más sencillo es usar el Administrador de Paquetes NuGet. Abra el administrador y busque IronXL en la pestaña de exploración. Elija IronXL de los resultados de búsqueda e instálelo.

La siguiente captura de pantalla muestra cómo abrir el Administrador de Paquetes NuGet en Visual Studio.

Cómo exportar CSV y Excel en Razor, Figura 4: Navegar al Administrador de Paquetes NuGet Navega al Administrador de Paquetes NuGet

IronXL en los resultados de búsqueda:

Cómo exportar CSV y Excel en Razor, Figura 5: Buscar IronXL en la Interfaz del Administrador de Paquetes NuGet Buscar IronXL en la Interfaz del Administrador de Paquetes NuGet

4.2 Uso de la línea de comandos de Visual Studio

Usar una consola para realizar operaciones es una opción popular para muchos. Si prefiere instalar IronXL a través de la línea de comandos, puede seguir estos pasos:

  • En Visual Studio, ve a Herramientas > Administrador de Paquetes NuGet > Consola del Administrador de Paquetes.
  • Ingrese la siguiente línea en la pestaña de la Consola del Administrador de Paquetes, que instalará el paquete:
Install-Package IronXL.Excel

Ahora el paquete se descargará/instalará en el proyecto actual y estará listo para usar.

Cómo exportar CSV y Excel en Razor, Figura 6: Instalar IronXL en la Consola del Administrador de Paquetes Instalar IronXL en la Consola del Administrador de Paquetes

5. Exportar datos a un archivo Excel en Razor Net Core

Una vez creado el proyecto, se crea una interfaz simple de la aplicación Razor. Ahora cambie la interfaz para exportar a Excel export.

Cómo exportar CSV y Excel en Razor, Figura 7: La interfaz web del proyecto recién creado La interfaz web del proyecto recién creado

Cambie la interfaz anterior editando el archivo index.cshtml en el directorio Pages.

@page
@model IndexModel
@{
    ViewData["Title"] = "Home page";
}
<div class="text-center">
    <h1 class="display-4">IronXL Generate Excel File</h1>
    <p class="m-5">This will be the combination of Razor and IronXL, together they will Export data to Excel file.</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Export 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">This will be the combination of Razor and IronXL, together they will Export data to Excel file.</p>
    <form method="post" asp-page-handler="Export">
        <button class="btn btn-success p-3">Export Excel File!</button>
    </form>
</div>
page model ReadOnly Property () As IndexModel
	ViewData("Title") = "Home page"
End Property
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<div class="text-center"> <h1 class="display-4"> IronXL Generate Excel File</h1> <p class="m-5"> This will be the combination @of Razor @and IronXL, together they will Export data @to Excel file.</p> <form method="post" asp-page-handler="Export"> <button class="btn btn-success p-3"> Export Excel File!</button> </form> </div>
$vbLabelText   $csharpLabel

Este código cambiará la interfaz de la página de inicio y añadirá el botón de exportación.

Cómo exportar CSV y Excel en Razor, Figura 8: La nueva interfaz con un botón de exportación La nueva interfaz con un botón de exportación

Ahora cree el método OnPostExport en el archivo index.cshtml.cs y escriba el siguiente código. Este código genera una hoja de trabajo, escribe nombres de columna en negrita y permite establecer otras opciones de estilo como tamaño de fuente y color de fondo. Puede pensar en ello como un ejemplo simple de exportación de datos desde una base de datos a un archivo Excel.

public FileResult OnPostExport()
{
    // Create a new workbook with the Excel file format
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);

    // Create a new worksheet in the workbook
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    // Add data and styles to the new worksheet
    workSheet["A1"].Value = "Name";
    workSheet["B1"].Value = "Email";
    workSheet["C1"].Value = "Marks";
    workSheet["D1"].Value = "Percentage";

    // Set styling for column headers
    workSheet["A1:D1"].Style.Font.Bold = true;

    // Filling the worksheet with data
    workSheet["A2"].Value = "Nick";
    workSheet["A3"].Value = "Roy";
    workSheet["A4"].Value = "Chris";
    workSheet["B2"].Value = "Nick@gmail.com";
    workSheet["B3"].Value = "Roy123@gmail.com";
    workSheet["B4"].Value = "Chris1999@gmail.com";
    workSheet["C2"].Value = "850";
    workSheet["C3"].Value = "710";
    workSheet["C4"].Value = "990";
    workSheet["D2"].Value = "85%";
    workSheet["D3"].Value = "71%";
    workSheet["D4"].Value = "99%";

    // Return the file as an Excel sheet
    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.xlsx");
}
public FileResult OnPostExport()
{
    // Create a new workbook with the Excel file format
    WorkBook workBook = new WorkBook(IronXL.ExcelFileFormat.XLSX);

    // Create a new worksheet in the workbook
    WorkSheet workSheet = workBook.CreateWorkSheet("data");

    // Add data and styles to the new worksheet
    workSheet["A1"].Value = "Name";
    workSheet["B1"].Value = "Email";
    workSheet["C1"].Value = "Marks";
    workSheet["D1"].Value = "Percentage";

    // Set styling for column headers
    workSheet["A1:D1"].Style.Font.Bold = true;

    // Filling the worksheet with data
    workSheet["A2"].Value = "Nick";
    workSheet["A3"].Value = "Roy";
    workSheet["A4"].Value = "Chris";
    workSheet["B2"].Value = "Nick@gmail.com";
    workSheet["B3"].Value = "Roy123@gmail.com";
    workSheet["B4"].Value = "Chris1999@gmail.com";
    workSheet["C2"].Value = "850";
    workSheet["C3"].Value = "710";
    workSheet["C4"].Value = "990";
    workSheet["D2"].Value = "85%";
    workSheet["D3"].Value = "71%";
    workSheet["D4"].Value = "99%";

    // Return the file as an Excel sheet
    return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.xlsx");
}
Public Function OnPostExport() As FileResult
	' Create a new workbook with the Excel file format
	Dim workBook As New WorkBook(IronXL.ExcelFileFormat.XLSX)

	' Create a new worksheet in the workbook
	Dim workSheet As WorkSheet = workBook.CreateWorkSheet("data")

	' Add data and styles to the new worksheet
	workSheet("A1").Value = "Name"
	workSheet("B1").Value = "Email"
	workSheet("C1").Value = "Marks"
	workSheet("D1").Value = "Percentage"

	' Set styling for column headers
	workSheet("A1:D1").Style.Font.Bold = True

	' Filling the worksheet with data
	workSheet("A2").Value = "Nick"
	workSheet("A3").Value = "Roy"
	workSheet("A4").Value = "Chris"
	workSheet("B2").Value = "Nick@gmail.com"
	workSheet("B3").Value = "Roy123@gmail.com"
	workSheet("B4").Value = "Chris1999@gmail.com"
	workSheet("C2").Value = "850"
	workSheet("C3").Value = "710"
	workSheet("C4").Value = "990"
	workSheet("D2").Value = "85%"
	workSheet("D3").Value = "71%"
	workSheet("D4").Value = "99%"

	' Return the file as an Excel sheet
	Return File(workBook.ToStream().ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Exported.xlsx")
End Function
$vbLabelText   $csharpLabel

Este código anterior creará un libro de trabajo y devolverá el archivo como una hoja de Excel. Este método está vinculado al botón, y una vez que se hace clic en el botón, automáticamente creará y descargará el archivo XLSX exportado.

Cómo exportar CSV y Excel en Razor, Figura 9: Exportar un archivo XLSX en el navegador Exportar un archivo XLSX en el navegador

Cómo exportar CSV y Excel en Razor, Figura 10: Los datos en el archivo XLSX exportado Los datos en el archivo XLSX exportado

6. Exportar datos a un archivo CSV

Puede exportar fácilmente archivos de texto CSV con un cambio en el código anterior. Simplemente reemplace el código de devolución de archivo con el siguiente, y su página Razor devolverá un archivo CSV.

return File(workBook.ToStream().ToArray(), "text/csv", "Student.csv");
return File(workBook.ToStream().ToArray(), "text/csv", "Student.csv");
Return File(workBook.ToStream().ToArray(), "text/csv", "Student.csv")
$vbLabelText   $csharpLabel

Cómo exportar CSV y Excel en Razor, Figura 11: Exportar un archivo CSV en el navegador Exportar un archivo CSV en el navegador

Cómo exportar CSV y Excel en Razor, Figura 12: Los datos en el archivo CSV exportado Los datos en el archivo CSV exportado

7. Conclusión

La exportación de datos a hojas Excel y archivos CSV es una tarea común en el desarrollo web, y Razor e IronXL facilitan su realización. Con IronXL, los desarrolladores pueden crear fácilmente hojas de cálculo Excel y guardarlas en un archivo o flujo. Razor puede entonces usarse para generar contenido dinámico que incluye enlaces al documento Excel, permitiendo a los usuarios descargarlos directamente desde la página web. Esto hace que sea sencillo crear informes y otros contenidos basados en datos que pueden compartirse fácilmente con otros.

La combinación de Razor e IronXL .NET Core Razor Pages proporciona un conjunto de herramientas poderoso para los desarrolladores web que buscan crear páginas web dinámicas y basadas en datos. Para empezar a usar Razor e IronXL, se necesita tener instalados Visual Studio y el SDK de .NET Core. Después de eso, crear un nuevo proyecto de Visual Studio e instalar la biblioteca IronXL se puede hacer fácilmente. Finalmente, cambiando la interfaz de la página de inicio y creando un método OnPostExport, los desarrolladores pueden exportar datos a documentos Excel en unos pocos pasos sencillos.

Para aprender más sobre IronXL, Razor y cómo exportar datos a archivos Excel y CSV, por favor visite la siguiente página.

IronXL es gratuito para usar con fines de desarrollo no comerciales. Un prueba gratis está disponible para pruebas en producción. Consulte los planes de precios para obtener más detalles sobre precios y licencias.

Los usuarios también pueden beneficiarse de la Iron Suite, un Suite de 5 bibliotecas profesionales de ASP.NET Core que incluyen IronXL, IronPDF, y más.

Preguntas Frecuentes

¿Cómo puedo exportar datos a Excel usando Razor Pages?

Puedes usar IronXL en combinación con Razor Pages para exportar datos a Excel. Comienza instalando IronXL a través del Administrador de Paquetes NuGet o la Línea de Comandos de Visual Studio. Luego, crea un nuevo libro de trabajo y hoja de trabajo, llénalo con datos y expórtalo como un archivo de Excel usando Razor.

¿Qué pasos son necesarios para configurar un entorno para exportar datos a Excel usando Razor?

Para configurar tu entorno, necesitarás Visual Studio y el SDK de .NET Core. Crea un nuevo proyecto de aplicación web ASP.NET Core, instala IronXL desde NuGet y modifica la interfaz de Razor para agregar funcionalidades de exportación.

¿Cuál es el proceso para exportar datos a un archivo CSV en una aplicación .NET?

Para exportar datos como un archivo CSV usando IronXL, modifica el código de tu Página Razor para devolver el archivo en formato 'text/csv'. Esto implica usar IronXL para manejar datos de hoja de trabajo y especificar CSV como el formato de salida.

¿Puedo estilizar hojas de cálculo Excel al exportarlas desde Razor Pages?

Sí, IronXL te permite aplicar estilos a las hojas de cálculo de Excel al exportarlas desde Razor Pages. Puedes personalizar fuentes, colores y otros elementos de formato para mejorar la presentación de tus datos.

¿Es posible usar IronXL para proyectos no comerciales?

IronXL está disponible de forma gratuita para propósitos de desarrollo no comercial. También puedes usar una prueba gratuita para pruebas en entornos de producción, y hay disponibles planes de precios detallados para uso comercial.

¿Cómo simplifica IronXL las tareas de desarrollo web que involucran archivos Excel y CSV?

IronXL simplifica el desarrollo web proporcionando una potente API para generar y manipular archivos Excel y CSV directamente desde Razor Pages. Elimina la necesidad de Interop, haciendo que las tareas de exportación de datos sean más eficientes y fáciles de implementar.

¿Por qué elegirían los desarrolladores Razor e IronXL para tareas de exportación de datos?

Los desarrolladores eligen Razor e IronXL por su facilidad de uso, flexibilidad y potentes características. Permiten la integración sin problemas de funcionalidades de exportación de datos en aplicaciones web, permitiendo la creación de contenido dinámico impulsado por datos que puede compartirse sin esfuerzo.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más