Leer Archivos Excel en ASP.NET MVC Usando IronXL
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.
Cómo leer archivos Excel en ASP.NET
- Instalar la biblioteca C# para leer archivos Excel en ASP.NET
- Cargar y acceder a la hoja objetivo en el archivo Excel
- Accede al método
ToDataTable
y regresa a él conView
- Mostrar datos de Excel en una página web utilizando un bucle
- Iterar a través de todos los datos y construir una tabla HTML a partir de ellos
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.
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
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:

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>
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.

Tabla de Bootstrap