Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
En este tutorial, aprenderemos cómo abrir un archivo de Excel utilizando IronXL en una aplicación ASP.NET Core utilizando la biblioteca IronXL. Cubriremos los pasos básicos para leer archivos Excel y mostrar datos de ellos y guardar los datos modificados de nuevo en el archivo.
IronXL es una biblioteca .NET Excel que proporciona funcionalidad para trabajar con documentos Excel sin necesidad de dependencias de Microsoft Excel u Office Interop. Soporta tanto .NET Framework como .NET Core, proporcionando capacidades para escribir, manipular y leer archivos Excel con sólo unas pocas líneas de código. Para un tutorial detallado sobre la lectura de archivos Excel, consulte aquí.
Podemos leer y escribir documentos Excel, extraer datos de ellos, manipularlos e incluso crear nuevos archivos Excel desde cero. IronXL no sólo es compatible con el formato .xls, sino también con .xlsx, que es un formato de archivo basado en XML desarrollado por Microsoft para representar hojas de cálculo.
Antes de sumergirnos en el código, asegúrate de que tienes lo siguiente:
A continuación, tenemos que instalar el paquete IronXL en nuestro proyecto:
En la pestaña "Examinar", busque "IronXL" y haga clic en "Instalar" para el paquete IronXL.Excel.
Espere a que se instale el paquete.
Su proyecto ASP.NET Core ya está configurado, y la biblioteca IronXL está instalada y lista para usar.
Ahora, vamos a crear una Página Razor donde escribiremos el código para abrir el archivo Excel.
Introduzca "ExcelOpener" como nombre de la página y haga clic en "Añadir".
Esto creará dos archivos: ExcelOpener.cshtml y ExcelOpener.cshtml.cs.
El archivo ExcelOpener.cshtml contiene el código HTML de la página y el archivo ExcelOpener.cshtml.cs contiene el código C# de la página.
Sumerjámonos en el código. La clase ExcelOpenerModel
proporcionada es un Modelo de Página Razor. Esta clase tiene una Lista<List<string>>
Propiedad Data
, que se utilizará para almacenar los datos leídos de un fichero Excel.
public List<List<string>> Data { get; set; }
public ExcelOpenerModel()
{
Data = new List<List<string>>();
}
public List<List<string>> Data { get; set; }
public ExcelOpenerModel()
{
Data = new List<List<string>>();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
En el método OnGet
, cargamos un fichero Excel y leemos los datos de la hoja de cálculo por defecto (la primera hoja del libro). Cada fila se representa como una Lista<string>
, y todas estas listas se añaden a la propiedad Data
.
public void OnGet()
{
try
{
Data = new List<List<string>>();
//Cargue su archivo Excel
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
//Seleccione su hoja de cálculo
WorkSheet sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < sheet.RowCount; i++)
{
var row = new List<string>();
for (int j = 0; j < sheet.ColumnCount; j++)
{
row.Add(sheet.GetCellAt(i, j).Value.ToString());
}
Data.Add(row);
}
}
catch (Exception ex)
{
//Gestione aquí las excepciones
Console.WriteLine(ex.Message);
}
}
public void OnGet()
{
try
{
Data = new List<List<string>>();
//Cargue su archivo Excel
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
//Seleccione su hoja de cálculo
WorkSheet sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < sheet.RowCount; i++)
{
var row = new List<string>();
for (int j = 0; j < sheet.ColumnCount; j++)
{
row.Add(sheet.GetCellAt(i, j).Value.ToString());
}
Data.Add(row);
}
}
catch (Exception ex)
{
//Gestione aquí las excepciones
Console.WriteLine(ex.Message);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
WorkBook.Load(ruta)
: Este método carga el documento Excel desde la ruta de archivo especificada. Ayuda a cargar y leer la hoja Excel.sheet.GetCellAt(i, j)Valor.ToString()
: Obtiene la celda en los índices de fila y columna especificados y convierte su valor en una cadena. Este es un ejemplo de un método de índice que nos permite acceder a celdas o rangos específicos dentro de un archivo Excel basado en índices de fila y columna.En el fichero ExcelOpener.cshtml.cs, tenemos una clase llamada ExcelOpenerModel
que representa el modelo Razor Page. Contiene una propiedad llamada Data
de tipo `List<List
El método OnGet
es llamado cuando la página es solicitada y es responsable de leer los datos desde el archivo de Excel. Utiliza IronXL para cargar el archivo de Excel, selecciona la hoja de cálculo predeterminada e itera sobre las filas y columnas para rellenar la propiedad Data
.
El método OnPost
de la clase ExcelOpenerModel
se utiliza para guardar modificaciones en el fichero Excel. Primero carga el fichero Excel y recupera la hoja de cálculo por defecto. A continuación, escribe los valores de Data
en las celdas de la hoja de cálculo y guarda el libro de trabajo en un nuevo archivo.
public void OnPost()
{
try
{
//Cargue su archivo Excel
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
//Seleccione su hoja de cálculo
var sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < Data.Count; i++)
{
for (int j = 0; j < Data [i].Count; j++)
{
sheet.SetCellValue(i, j, Data [i][j]);
}
}
// Guardar el archivo Excel
var filename = "C:\\ModifiedData.xlsx"
workbook.SaveAs(filename);
}
catch (Exception ex)
{
//Gestione aquí las excepciones
Console.WriteLine(ex.Message);
}
}
public void OnPost()
{
try
{
//Cargue su archivo Excel
var workbook = WorkBook.Load(@"C:\Users\Administrator\Documents\Loan.xlsx");
//Seleccione su hoja de cálculo
var sheet = workbook.DefaultWorkSheet;
for (int i = 0; i < Data.Count; i++)
{
for (int j = 0; j < Data [i].Count; j++)
{
sheet.SetCellValue(i, j, Data [i][j]);
}
}
// Guardar el archivo Excel
var filename = "C:\\ModifiedData.xlsx"
workbook.SaveAs(filename);
}
catch (Exception ex)
{
//Gestione aquí las excepciones
Console.WriteLine(ex.Message);
}
}
Public Sub OnPost()
Try
'Cargue su archivo Excel
Dim workbook = WorkBook.Load("C:\Users\Administrator\Documents\Loan.xlsx")
'Seleccione su hoja de cálculo
Dim sheet = workbook.DefaultWorkSheet
For i As Integer = 0 To Data.Count - 1
Dim j As Integer = 0
Do While j < Data (i).Count
sheet.SetCellValue(i, j, Data (i)(j))
j += 1
Loop
Next i
' Guardar el archivo Excel
Dim filename = "C:\ModifiedData.xlsx" workbook.SaveAs(filename)
Catch ex As Exception
'Gestione aquí las excepciones
Console.WriteLine(ex.Message)
End Try
End Sub
sheet.SetCellValue(i, j, Data\[i\]\[j\])
: Este método establece el valor de la celda en los índices de fila y columna especificados.workbook.SaveAs(ruta)
: Este método guarda el libro de Excel en la ruta de archivo especificada.El método OnPost
es llamado cuando el formulario es enviado, y guarda los datos modificados en el fichero Excel. Carga el archivo Excel, selecciona la hoja de cálculo predeterminada y actualiza los valores de las celdas basándose en los datos modificados recibidos del formulario.
En ExcelOpener.cshtml, se define un formulario para mostrar y editar los datos del fichero Excel. Cada valor de celda se muestra en un campo de entrada de texto. Tras la edición, al hacer clic en el botón "Guardar" se enviará el formulario, se activará el método OnPost
y se guardarán los cambios en el archivo Excel.
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
<!-- Bootstrap classes for tables -->
@for (int i = 0; i < Model.Data.Count; i++)
{
<tr>
@for (int j = 0; j < Model.Data [i].Count; j++)
{
<td>
<input type="text" class="form-control" name="Data [@i][@j]" value="@Model.Data [i][j]" /> <!-- Bootstrap class for form controls -->
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
@page
@model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel
<form method="post">
<table class="table table-bordered table-striped">
<!-- Bootstrap classes for tables -->
@for (int i = 0; i < Model.Data.Count; i++)
{
<tr>
@for (int j = 0; j < Model.Data [i].Count; j++)
{
<td>
<input type="text" class="form-control" name="Data [@i][@j]" value="@Model.Data [i][j]" /> <!-- Bootstrap class for form controls -->
</td>
}
</tr>
}
</table>
<input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -->
</form>
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: @page model Open_Excel_File_.NET_Core.Pages.ExcelOpenerModel <form method="post"> <table class="table table-bordered table-striped"> <!-- Bootstrap classes for tables -- > for(int i = 0; i < Model.Data.Count; i++)
"post"> <table Class="table table-bordered table-striped"> <(Not -)- Bootstrap classes for tables -- > [for](Integer i = 0; i < Model.Data.Count; i++)
Private Friend model As page
'INSTANT VB WARNING: The following constructor is declared outside of its associated class:
'ORIGINAL LINE: <tr> for(int j = 0; j < Model.Data [i].Count; j++)
Private Sub New(Optional ByVal j As Integer = 0; j < Model.Data (i).Count; j++)(Of tr)
Bootstrap -= 1
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <td> <input type="text" class="form-control" name="Data [@i][@j]" value="@Model.Data [i][j]" /> <!-- Bootstrap class for form controls -- > </td>
"Data [@i][@j]" value="@Model.Data [i][j]" /> <(Not Bootstrap) class for form controls > </td>
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <td> <input type="text" class="form-control" name="Data [@i][@j]" value
"form-control" name="Data [@i][@j]" value
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: <td> <input type="text" class="form-control" name
"text" class="form-control" name
(Of td) <input type="text" class
controls -= 1
End Sub
Private </tr>
End Class
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' </table> <input type="submit" class="btn btn-primary" value="Save" /> <!-- Bootstrap classes for buttons -- > </form>
En _Layout.cshtml, se añade un enlace a la página en el menú de navegación. Al hacer clic en este enlace, accederá a la página de inicio de Excel.
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-page="/ExcelOpener">ExcelOpener</a>
</li>
IRON VB CONVERTER ERROR developers@ironsoftware.com
Compila la aplicación haciendo clic en el botón "Compilar" de Visual Studio o utilizando el atajo de teclado Ctrl + Mayús + B. Ejecute la aplicación pulsando F5 o haciendo clic en el botón "Inicio" de Visual Studio.
Una vez ejecutada la aplicación, navegue hasta la página "ExcelOpener" pulsando en el enlace correspondiente de la barra de navegación. La página mostrará los datos de Excel en formato tabular.
Puede modificar los datos de la tabla y hacer clic en el botón "Guardar" para guardar los cambios en el archivo Excel.
En este tutorial, aprendimos cómo abrir un archivo de Excel usando IronXL en una aplicación ASP.NET Core. IronXL proporciona una forma sencilla y cómoda de leer y manipular archivos Excel. Puede explorar la documentación de IronXL para conocer características y funcionalidades más avanzadas.
IronXL ofrece un prueba gratuita para que puedas evaluar sus capacidades. Si le resulta útil para sus proyectos, puede adquirir una licencia a partir de $599.
9 productos API .NET para sus documentos de oficina