Saltar al pie de página
USANDO IRONXL

Cómo exportar CSV y Excel en Razor

Looking for a way to export data to an Excel file using Razor Pages? This article instructs on how to do so using IronXL for .NET.

1. IronXL

IronXL is a .NET library used for working with Excel files. It is built on top of OpenXML SDK and provides a simple API for reading, writing, and manipulating Excel spreadsheets. IronXL can be used in a variety of .NET applications, including Web Applications, Desktop Applications, and Console Applications. IronXL provides a range of features for working with Excel documents, including the ability to read and write data to individual cells, create charts and graphs, and perform complex calculations. It also supports advanced Excel features such as pivot tables, conditional formatting, and data validation.

Exporting data to Excel and CSV files is a common task in web development, and Razor and IronXL make it easy to accomplish. With IronXL, developers can easily create Excel spreadsheets and save them to a file or stream. Razor can then be used to generate dynamic content that includes links to the Excel document, allowing users to download them directly from the web page. The CSV file format can also be generated using IronXL and downloaded similarly using Razor. This makes it simple to create reports and other data-driven content that can be easily shared with others. Overall, the combination of Razor and IronXL .NET Core Razor Pages provides a powerful toolset for web developers looking to create dynamic, data-driven web pages.

2. Prerequisites

Before using Razor in Visual Studio, there are a few prerequisites that users should have in place. Here are some of the important ones:

  1. As an IronXL user, you need to have Visual Studio installed on your computer system. You can download Visual Studio Community for free from the official website of Microsoft.
  2. You also need to have the .NET Core SDK installed on your computer. You can download the latest version of the .NET Core SDK from the official Microsoft website.
  3. Your Web Development environment must be set before starting to work with Razor View.

3. Creating a New Visual Studio Project

To create a new Visual Studio project, follow these steps:

  1. Open Visual Studio.
  2. Click on "Create a New Project" in the start window, or click on "File" > "New" > "Project" in the menu bar.

    How to Export CSV and Excel in Razor, Figure 1: Visual Studio's start window Visual Studio's start window

  3. Select the type of project you want to create, to use Razor Pages, select ASP.NET Core Web App and click on Next.

    How to Export CSV and Excel in Razor, Figure 2: Create a new .NET Core Web App in Visual Studio Create a new .NET Core Web App in Visual Studio

  4. A new window will appear, write your new project name and location. Then click on Next.

    How to Export CSV and Excel in Razor, Figure 3: Configure the new project Configure the new project

  5. Now in the new window select your target Framework, check the configure for HTTPS option and click on create.
  6. Just like that your new Visual Studio ASP.NET Core Web App Project is created.

4. Install IronXL

The IronXL Library can be downloaded and installed in different ways.

These are:

  • Using Visual Studio NuGet packages.
  • Using the Visual Studio Command Line.

4.1 Using Visual Studio

To install the IronXL library, the simplest approach is to use the NuGet Package Manager. Open the manager and search for IronXL in the browse tab. Choose IronXL from the search results and install it.

The below screenshot shows how to open the NuGet Package Manager in Visual Studio.

How to Export CSV and Excel in Razor, Figure 4: Navigate to NuGet Package Manager Navigate to NuGet Package Manager

IronXL in search results:

How to Export CSV and Excel in Razor, Figure 5: Search for IronXL in NuGet Package Manager UI Search for IronXL in NuGet Package Manager UI

4.2 Using the Visual Studio Command-Line

Using a console to perform operations is a popular choice for many. If you prefer to install IronXL through the command line, you can follow these steps:

  • In Visual Studio, go to Tools > NuGet Package Manager > Package Manager Console.
  • Enter the following line in the Package Manager Console tab, which will install the package:
Install-Package IronXL.Excel

Now the package will download/install to the current project and be ready to use.

How to Export CSV and Excel in Razor, Figure 6: Install IronXL in the Package Manager Console Install IronXL in the Package Manager Console

5. Export Data to an Excel File in Razor Net Core

Once the project is created, a simple interface of the Razor application is created. Now change the interface to export to Excel export.

How to Export CSV and Excel in Razor, Figure 7: The Web interface of the newly created project The Web interface of the newly created project

Change the above interface by editing the index.cshtml file in the Pages directory.

@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

This code will change the interface of the home page and add the export button.

How to Export CSV and Excel in Razor, Figure 8: The new interface with an export button The new interface with an export button

Now create the OnPostExport method in the index.cshtml.cs file and write the following code. This code generates a worksheet, writes column names in bold, and allows setting other styling options like font size and background color. You can think of it as a simple example of exporting data from a database to an Excel file.

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

This above code will create a workbook and return the file as an Excel sheet. This method is linked to the button, and once the button is clicked, it will automatically create and download the XLSX exported file.

How to Export CSV and Excel in Razor, Figure 9: Export an XLSX file in the browser Export an XLSX file in the browser

How to Export CSV and Excel in Razor, Figure 10: The data in the exported XLSX file The data in the exported XLSX file

6. Export Data to CSV File

You can easily export CSV text files with one change in the above code. Just replace the return file code with the following, and your Razor page will return a CSV file.

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

How to Export CSV and Excel in Razor, Figure 11: Export a CSV file in the browser Export a CSV file in the browser

How to Export CSV and Excel in Razor, Figure 12: The data in the exported CSV file The data in the exported CSV file

7. Conclusion

Exporting data to Excel sheets and CSV files is a common task in web development, and Razor and IronXL make it easy to accomplish. With IronXL, developers can easily create Excel spreadsheets and save them to a file or stream. Razor can then be used to generate dynamic content that includes links to the Excel document, allowing users to download them directly from the web page. This makes it simple to create reports and other data-driven content that can be easily shared with others.

The combination of Razor and IronXL .NET Core Razor Pages provides a powerful toolset for web developers looking to create dynamic, data-driven web pages. To start using Razor and IronXL, one needs to have Visual Studio and .NET Core SDK installed. After that, creating a new Visual Studio project and installing the IronXL library can be done easily. Finally, by changing the interface of the home page and creating an OnPostExport method, developers can export data to Excel documents in a few simple steps.

To learn more about IronXL, Razor and how to export data to Excel and CSV files, please visit the following page.

IronXL is free to use for non-commercial development purposes. A free trial is available for testing in production. Look at the pricing plans for more details about prices and licensing.

Users can also benefit from Iron Suite, a Suite of 5 professional ASP.NET Core libraries including IronXL, IronPDF, and more.

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