USO DE IRONXL

Trabajar con Excel en .NET Core

Chaknith Bin
Chaknith Bin
5 de octubre, 2020
Actualizado 19 de diciembre, 2023
Compartir:

Visión general de .NET Core Excel

En esta era moderna, necesitamos una forma mejor de trabajar con Hojas de Cálculo Excel en nuestras aplicaciones .NET Core. En el siguiente tutorial, aprenderemos cómo acceder a hojas de cálculo en proyectos Excel .NET Core y modificar sus valores utilizando C#.


Primer paso

1. Descargar la biblioteca IronXL

Para trabajar fácilmente con archivos Excel en .NET Core, prueba IronXL. Descargar IronXL DLL o instalar con NuGet para uso gratuito en proyectos de desarrollo.

Install-Package IronXL.Excel

Tutorial

2. Proyecto de edición de Excel .NET Core

Ahora que ya has descargado IronXL, empecemos. Cargue un archivo Excel en el proyecto y acceda al WorkSheet donde se deben editar los datos y realizar cambios.


3. Editar valor de celda específico

Para editar archivos de Excel, añade la referencia IronXL a tu proyecto e importa la biblioteca con using IronXL.

3.1. Cargar un archivo de ejemplo

En el siguiente caso, el nombre de nuestro archivo Excel es sample.xlsx y existe en la carpeta bin> Debug> netcoreapp3.1 del proyecto. Usaremos este código para editar el valor new value en la celda A1 del archivo sample.xlsx.

/**
Load WorkSheet
anchor-load-a-sample-file
**/
using IronXL;
static void Main(string [] args)
{          
    WorkBook wb = WorkBook.Load("sample.xlsx"); //load Excel file 
    WorkSheet ws = wb.GetWorkSheet("Sheet1"); //Get sheet1 of sample.xlsx
    ws ["A1"].Value = "new value"; //access A1 cell and edit the value
    wb.SaveAs("sample.xlsx");   //save changes        
} 
/**
Load WorkSheet
anchor-load-a-sample-file
**/
using IronXL;
static void Main(string [] args)
{          
    WorkBook wb = WorkBook.Load("sample.xlsx"); //load Excel file 
    WorkSheet ws = wb.GetWorkSheet("Sheet1"); //Get sheet1 of sample.xlsx
    ws ["A1"].Value = "new value"; //access A1 cell and edit the value
    wb.SaveAs("sample.xlsx");   //save changes        
} 
'''
'''Load WorkSheet
'''anchor-load-a-sample-file
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'load Excel file
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'Get sheet1 of sample.xlsx
	ws ("A1").Value = "new value" 'access A1 cell and edit the value
	wb.SaveAs("sample.xlsx") 'save changes
End Sub
$vbLabelText   $csharpLabel

4. Asignar valor a varias celdas

Es muy fácil editar múltiples celdas y asignar valores estáticos a la vez utilizando (dos puntos :). Su lado izquierdo indica la celda inicial y su lado derecho indica la última celda de una columna específica.

hoja [De:A]

Esto editará nuevo valor desde la celda A1 hasta A9 de la columna A.

/**
Assign Value Multi Cells
anchor-assign-value-to-multiple-cells
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    ws ["A1:A9"].Value = "new value";
    wb.SaveAs("sample.xlsx");
}
/**
Assign Value Multi Cells
anchor-assign-value-to-multiple-cells
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    ws ["A1:A9"].Value = "new value";
    wb.SaveAs("sample.xlsx");
}
'''
'''Assign Value Multi Cells
'''anchor-assign-value-to-multiple-cells
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	ws ("A1:A9").Value = "new value"
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

5. Editar celdas con entradas de usuario

He aquí un caso alternativo en el que podemos tomar los valores de los usuarios y editar el fichero Excel.

/**
Edit Cells User Input
anchor-edit-cells-with-user-inputs
**/
using IronXL;
static void Main(string [] args)
{
    string _from, _to, newValue ;

    Console.Write("Enter Starting Cell :");
    _from = Console.ReadLine();

    Console.Write("Enter Last Cell :");
    _to = Console.ReadLine();

    Console.Write("Enter value:");
    newValue = Console.ReadLine();

    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    ws [_from + ":" + _to].Value = newValue;
    wb.SaveAs("sample.xlsx"); 
    Console.WriteLine("Successfully Changed...!");
    Console.ReadKey();
}
/**
Edit Cells User Input
anchor-edit-cells-with-user-inputs
**/
using IronXL;
static void Main(string [] args)
{
    string _from, _to, newValue ;

    Console.Write("Enter Starting Cell :");
    _from = Console.ReadLine();

    Console.Write("Enter Last Cell :");
    _to = Console.ReadLine();

    Console.Write("Enter value:");
    newValue = Console.ReadLine();

    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    ws [_from + ":" + _to].Value = newValue;
    wb.SaveAs("sample.xlsx"); 
    Console.WriteLine("Successfully Changed...!");
    Console.ReadKey();
}
'''
'''Edit Cells User Input
'''anchor-edit-cells-with-user-inputs
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim _from, _to, newValue As String

	Console.Write("Enter Starting Cell :")
	_from = Console.ReadLine()

	Console.Write("Enter Last Cell :")
	_to = Console.ReadLine()

	Console.Write("Enter value:")
	newValue = Console.ReadLine()

	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	ws (_from & ":" & _to).Value = newValue
	wb.SaveAs("sample.xlsx")
	Console.WriteLine("Successfully Changed...!")
	Console.ReadKey()
End Sub
$vbLabelText   $csharpLabel

El código anterior mostrará la siguiente salida y tomará las entradas del usuario:

Trabajar con Excel en .NET Core, Figura 1: Interfaz de aplicación de consola con entrada de usuario

Interfaz de aplicación de consola con entrada de usuario

Valores cambiados de B4 a B9 en ExcelSheet, podemos ver:

Trabajar con Excel en .NET Core, Figura 2: El nuevo valor se llena de B4 a B9

El nuevo valor se llena desde B4 hasta B9


6. Editar múltiples celdas con valor estático

Es muy fácil editar varias celdas y asignar valores dinámicos. Veamos el siguiente ejemplo:

/**
Edit Multi Cells Static Value
anchor-edit-multiple-cells-with-static-value
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    for (int i = From; i <= To; i++) //Set cell range of column A to be edit.
    {
        ws ["A" + i].Value = "Value"+i;
    }
    wb.SaveAs("sample.xlsx");  
}
/**
Edit Multi Cells Static Value
anchor-edit-multiple-cells-with-static-value
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    for (int i = From; i <= To; i++) //Set cell range of column A to be edit.
    {
        ws ["A" + i].Value = "Value"+i;
    }
    wb.SaveAs("sample.xlsx");  
}
'''
'''Edit Multi Cells Static Value
'''anchor-edit-multiple-cells-with-static-value
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	For i As Integer = From To [To] 'Set cell range of column A to be edit.
		ws ("A" & i).Value = "Value" & i
	Next i
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

7. Leer archivos Excel Tutorial en profundidad

Sumérgete con más detalles y múltiples proyectos y ejemplos de código si deseas aprender más sobre cómo leer archivos de Excel en C# con este tutorial.


Acceso rápido a tutoriales

Documentation related to Acceso rápido a tutoriales

Investigar la referencia API

Se proporciona documentación para IronXL, con todos los espacios de nombres, conjuntos de características, campos de métodos, clases y enums.

Referencia de la API

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
< ANTERIOR
Generar archivos Excel en C#