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.

Crear un proyecto ASP.NET

Uso de Visual Studio 2022 (o versiones de productos similares)cree 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

Biblioteca NuGet C# para Excel

Instalar con NuGet

Install-Package IronXL.Excel
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

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 por defecto en su proyecto ASP.NET (es decir, HomeController) y sustituye el método Index por 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
VB   C#

En el método de acción Index, cargamos el archivo de Excel utilizando Load de IronXL. La ruta del archivo Excel(incluido el nombre del archivo) se proporciona como parámetro de la llamada al método. A continuación, seleccionamos la primera hoja Excel como 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 Excel

Abra el archivo index.cshtml (vista de índice) y sustituya el código por 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>
VB   C#

El código anterior utiliza el Datatable devuelto por el método Index como modelo. Cada fila de la tabla se imprime en la página web utilizando un bucle @for, incluyendo el formato 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 Bootstrap

Tabla Bootstrap