Leer archivos de Excel en ASP.NET MVC usando C# con IronXL

This article was translated from English: Does it need improvement?
Translated
View the article in English

Este tutorial guía a los desarrolladores sobre cómo implementar el análisis de archivos Excel en aplicaciones ASP.NET MVC usando IronXL.

Inicio rápido: Cargar y convertir hoja de Excel a DataTable en MVC

Este ejemplo muestra cómo comenzar en segundos: cargar un libro de Excel, seleccionar su primera hoja de trabajo y convertirla a un System.Data.DataTable usando IronXL — sin Interop, sin complicaciones.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronXL con el gestor de paquetes NuGet

    PM > Install-Package IronXL.Excel

  2. Copie y ejecute este fragmento de código.

    var dataTable = IronXL.WorkBook.Load("CustomerData.xlsx").DefaultWorkSheet.ToDataTable(true);
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronXL en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

Crear un proyecto ASP.NET

Usando Visual Studio 2022 (o versiones de productos similares), crea un nuevo proyecto ASP.NET. Agregar paquetes NuGet adicionales y el 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, debemos instalar la biblioteca IronXL. Sigue los pasos a continuación para instalar la biblioteca IronXL. Abre la Consola del Administrador de Paquetes NuGet y ejecuta el siguiente comando:

Install-Package IronXL.Excel

Leyendo archivo de Excel

Abre el controlador predeterminado en tu proyecto ASP.NET (por ejemplo, HomeController.cs) y reemplaza el método Index con el siguiente código:

public ActionResult Index()
{
    // Load the Excel workbook from a specified path.
    WorkBook workBook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");

    // Access the first worksheet from the workbook.
    WorkSheet workSheet = workBook.WorkSheets.First();

    // Convert the worksheet data to a DataTable object.
    var dataTable = workSheet.ToDataTable();

    // Send the DataTable to the view for rendering.
    return View(dataTable);
}
public ActionResult Index()
{
    // Load the Excel workbook from a specified path.
    WorkBook workBook = WorkBook.Load(@"C:\Files\Customer Data.xlsx");

    // Access the first worksheet from the workbook.
    WorkSheet workSheet = workBook.WorkSheets.First();

    // Convert the worksheet data to a DataTable object.
    var dataTable = workSheet.ToDataTable();

    // Send the DataTable to the view for rendering.
    return View(dataTable);
}
Public Function Index() As ActionResult
	' Load the Excel workbook from a specified path.
	Dim workBook As WorkBook = WorkBook.Load("C:\Files\Customer Data.xlsx")

	' Access the first worksheet from the workbook.
	Dim workSheet As WorkSheet = workBook.WorkSheets.First()

	' Convert the worksheet data to a DataTable object.
	Dim dataTable = workSheet.ToDataTable()

	' Send the DataTable to the view for rendering.
	Return View(dataTable)
End Function
$vbLabelText   $csharpLabel

En el método de acción Index, cargamos el archivo Excel usando el método 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 el DataTable devuelto en el ejemplo anterior en un navegador web.

El archivo Excel de trabajo que se usará en este ejemplo se representa a continuación:

Read Excel Files in ASP.NET MVC Using IronXL, Figure 1: Excel file

Archivo de Excel

Abre el index.cshtml (vista index) y reemplaza 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 usa el DataTable devuelto por el método Index como modelo. Cada fila de la tabla se imprime en la página web usando un bucle @for, incluyendo el formateo de Bootstrap para decoración.

Ejecutar el proyecto producirá los resultados que se muestran a continuación.

Read Excel Files in ASP.NET MVC Using IronXL, Figure 2: Bootstrap Table

Tabla Bootstrap

Preguntas Frecuentes

¿Cómo puedo leer archivos de Excel en ASP.NET MVC sin usar Interop?

Puede leer archivos de Excel en ASP.NET MVC sin usar Interop utilizando la biblioteca IronXL. Primero, instale IronXL a través de NuGet y luego use el método WorkBook.Load para cargar el archivo Excel. Acceda a la hoja de trabajo y conviértala a un DataTable para procesamiento adicional.

¿Qué pasos son necesarios para mostrar datos de Excel en una página web usando ASP.NET MVC?

Para mostrar datos de Excel en una página web usando ASP.NET MVC, cargue el archivo Excel con IronXL, conviértalo en un DataTable, y páselo a la vista. Use sintaxis Razor en la vista para iterar sobre el DataTable y renderizar los datos como una tabla HTML.

¿Cómo instalo la biblioteca necesaria para manejar archivos de Excel en una aplicación ASP.NET?

Para manejar archivos de Excel en una aplicación ASP.NET, instale la biblioteca IronXL abriendo la consola del Administrador de paquetes NuGet en Visual Studio y ejecutando el comando Install-Package IronXL.Excel.

¿Cuál es la ventaja de usar IronXL para operaciones de Excel en ASP.NET MVC?

IronXL simplifica las operaciones de Excel en ASP.NET MVC al proporcionar una API fácil de usar que permite leer, escribir y manipular archivos de Excel sin necesidad de Interop de Excel, mejorando así el rendimiento y reduciendo la complejidad.

¿Cómo puedo convertir una hoja de trabajo de Excel en un DataTable en ASP.NET MVC?

En ASP.NET MVC, después de cargar un archivo de Excel con IronXL, puede convertir una hoja de trabajo en un DataTable usando el método ToDataTable, lo que facilita el manejo y manipulación de datos.

¿Puede usarse IronXL en aplicaciones ASP.NET Core MVC para procesamiento de Excel?

Sí, IronXL es compatible con aplicaciones ASP.NET Core MVC y puede usarse para leer y manipular eficientemente archivos de Excel sin depender de Interop de Excel.

¿Qué modificaciones de código se requieren en el controlador para leer archivos de Excel?

Modifique el controlador predeterminado, como HomeController.cs, usando WorkBook.Load de IronXL para cargar el libro de Excel y convertir los datos de la hoja de trabajo en un DataTable para pasarlo a la vista.

¿Cómo mejora IronXL el proceso de lectura de archivos de Excel en ASP.NET?

IronXL mejora el proceso de lectura de archivos de Excel en ASP.NET al ofrecer una API sencilla que elimina la necesidad de Interop de Excel, permitiendo una lectura, escritura y manipulación sin problemas de los datos de Excel.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 1,738,553 | Version: 2025.11 recién lanzado