Leer Archivos Excel en ASP.NET MVC Usando IronXL

Chaknith Bin
Chaknith Bin
12 de diciembre, 2022
Actualizado 10 de diciembre, 2024
Compartir:
This article was translated from English: Does it need improvement?
Translated
View the article in English

Este tutorial guía a los desarrolladores en la implementación de análisis de archivos de Excel en aplicaciones ASP.NET MVC utilizando IronXL.

Crear un proyecto ASP.NET

Usando Visual Studio 2022 (o versiones de productos similares), crea un nuevo proyecto ASP.NET. Añade paquetes NuGet adicionales y código fuente según sea necesario para el proyecto en particular.

Instalar la biblioteca IronXL

Comience a usar IronXL en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer


Después de crear el nuevo proyecto, tenemos que instalar la biblioteca IronXL. Siga los siguientes pasos para instalar la biblioteca IronXL. Abra la consola del gestor de paquetes NuGet y escriba el siguiente comando:

Install-Package IronXL.Excel

Lectura de archivos Excel

Abra el controlador predeterminado en su archivo de proyecto ASP.NET (es decir, HomeController) y reemplace el método Index con el siguiente código:

public ActionResult Index()
{
    WorkBook workbook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");
    WorkSheet sheet = workbook.WorkSheets.First();

    var dataTable = sheet.ToDataTable();

    return View(dataTable);
}
public ActionResult Index()
{
    WorkBook workbook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");
    WorkSheet sheet = workbook.WorkSheets.First();

    var dataTable = sheet.ToDataTable();

    return View(dataTable);
}
Public Function Index() As ActionResult
	Dim workbook As WorkBook = WorkBook.Load("C:\Files\Customer Data.xlsx")
	Dim sheet As WorkSheet = workbook.WorkSheets.First()

	Dim dataTable = sheet.ToDataTable()

	Return View(dataTable)
End Function
$vbLabelText   $csharpLabel

En el método de acción Index, cargamos el archivo Excel usando Load de IronXL. La ruta del archivo Excel (incluyendo el nombre del archivo) se proporciona como un parámetro a la llamada del método. A continuación, seleccionamos la primera hoja de Excel como la hoja de trabajo y cargamos los datos contenidos en ella en un objeto DataTable. Por último, el Datatable se envía al frontend.

Mostrar datos de Excel en una página web

El siguiente ejemplo muestra cómo mostrar la Datatable devuelta en el ejemplo anterior en un navegador web.

A continuación se muestra el archivo Excel de trabajo que se utilizará en este ejemplo:

Leer archivos Excel en ASP.NET MVC usando IronXL, Figura 1: archivo Excel

Archivo de Excel

Abra el archivo index.cshtml (vista de índice) y reemplace el código con el siguiente código HTML.

@{
    ViewData ["Title"] = "Home Page";
}

@using System.Data
@model DataTable

<div class="text-center">
    <h1 class="display-4">Welcome to IronXL Read Excel MVC</h1>
</div>
<table class="table table-dark">
    <tbody>
        @foreach (DataRow row in Model.Rows)
        {
            <tr>
                @for (int i = 0; i < Model.Columns.Count; i++)
                {
                    <td>@row [i]</td>
                }
            </tr>
        }

    </tbody>
</table>
@{
    ViewData ["Title"] = "Home Page";
}

@using System.Data
@model DataTable

<div class="text-center">
    <h1 class="display-4">Welcome to IronXL Read Excel MVC</h1>
</div>
<table class="table table-dark">
    <tbody>
        @foreach (DataRow row in Model.Rows)
        {
            <tr>
                @for (int i = 0; i < Model.Columns.Count; i++)
                {
                    <td>@row [i]</td>
                }
            </tr>
        }

    </tbody>
</table>
@
If True Then
	ViewData ("Title") = "Home Page"
End If

'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: using System.Data model DataTable <div class="text-center"> <h1 class="display-4"> Welcome to IronXL Read Excel MVC</h1> </div> <table class="table table-dark"> <tbody> foreach(DataRow row in Model.Rows)
"display-4"> Welcome [to] IronXL Read Excel MVC</h1> </div> <table class="table table-dark"> (Of tbody) foreach(DataRow row in Model.Rows)
		If True Then
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: using System.Data model DataTable <div class="text-center"> <h1 class="display-4"> Welcome to IronXL Read Excel MVC</h1> </div> <table class
"text-center"> <h1 class="display-4"> Welcome [to] IronXL Read Excel MVC</h1> </div> <table class
[using] System.Data model DataTable <div class="text-center"> <h1 class
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'			(Of tr) @for(int i = 0; i < Model.Columns.Count; i++)
'				{
'					<td> @row [i]</td>
'				}
			</tr>
		End If

'INSTANT VB TODO TASK: The following line uses invalid syntax:
'	</tbody> </table>
$vbLabelText   $csharpLabel

El código anterior utiliza el Datatable devuelto por el método Index como un modelo. Cada fila de la tabla se imprime en la página web usando un bucle @for, incluyendo el formato de Bootstrap para la decoración.

La ejecución del proyecto producirá los resultados que se muestran a continuación.

Leer archivos de Excel en ASP.NET MVC usando IronXL, Figura 2: Tabla de Bootstrap

Tabla de Bootstrap

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.