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
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
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 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
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:
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>
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.
Tabla Bootstrap