USO DE IRONXL

Cómo abrir un archivo Excel y escribir datos en C#

Actualizado 20 de junio, 2023
Compartir:

Este artículo explorará la librería IronXL para demostrar cómo abrir un archivo Microsoft Excel y escribir datos en él en una Aplicación de Consola C#.

IronXL - Una biblioteca de Excel

IronXL es una biblioteca .NET Excel que facilita la creación, lectura y edición de archivos Excel en aplicaciones C#. Ofrece un rendimiento excepcional y una salida precisa. La biblioteca admite todos los formatos de archivo de libros de Excel incluyendo XLS, XLSX, XLSM, CSV y TSV. Además, permite guardar o exportar datos en formatos como JSON, HTML, Binary, Byte Array, DataSet o DataTable.

Con IronXL, los desarrolladores pueden trabajar con hojas de cálculo y rangos de celdas sin problemas. Ofrece la posibilidad de editar fórmulas y recalcularlas fácilmente dentro de una hoja. Clasificación de datos en función del rango, la columna o la fila es sencillo. La biblioteca ofrece funciones para modificar los diseños, como cristales de congelación, tamaño automático de filas/columnas y añadir/eliminar filas/columnas.

IronXL también permite la protección de archivos Excel con contraseñas de usuario y permisos de edición. Otra característica destacable es la posibilidad de añadir, eliminar y extraer imágenes de hojas de cálculo de Excel. La biblioteca ofrece una amplia gama de funciones de Excel, que admiten varias formatos de datos de celdas. Estas características hacen de IronXL una de las API más fáciles de usar para trabajar con archivos de Excel.

Una de las ventajas significativas de IronXL es que no requiere que Microsoft Excel esté instalado en la máquina, eliminando la necesidad de Office Interop o cualquier otra dependencia. Es compatible con múltiples plataformas y soporta .NET 7, 6 y 5. También es compatible con .NET Core 2 y 3, así como con .NET Framework 4.5 y versiones posteriores para trabajar con hojas de cálculo de Excel.

Crear una aplicación de consola

Se recomienda la última versión de Visual Studio IDE para crear la aplicación. Visual Studio es el IDE oficial para el desarrollo en C#, y se supone que ya lo tiene instalado. Si no ha instalado Visual Studio, puede descargarlo de la página oficial de Sitio web de Microsoft Visual Studio.

Siga estos pasos para crear un nuevo proyecto llamado "DemoApp".

  1. Abra Visual Studio y haga clic en Crear un nuevo proyecto

    Cómo Abrir un Archivo Excel y Escribir Datos en C#, Figura 1: Nuevo Proyecto

     **Nuevo proyecto**
  2. Seleccione Aplicación de consola y haga clic en Siguiente

    Cómo abrir un archivo Excel y escribir datos en C#, Figura 2: Nuevo tipo de proyecto

     **Nuevo tipo de proyecto**
  3. Introduzca el nombre del proyecto

    Cómo abrir un archivo Excel y escribir datos en C#, Figura 3: Nuevo nombre de proyecto

     **Nuevo nombre del proyecto**
  4. Seleccione la versión .NET. Elija la versión estable .NET 6.0.

    Cómo abrir un archivo Excel y escribir datos en C#, Figura 4: Nuevo proyecto Información adicional

     **Información adicional del nuevo proyecto**

Instalar la biblioteca IronXL

Una vez creado el proyecto, es necesario instalar la biblioteca IronXL en el proyecto para poder utilizarla. Sigue estos pasos para instalarlo.

  1. Abra Gestionar paquetes NuGet para soluciones desde el Explorador de soluciones o desde Herramientas.

    Cómo abrir un archivo Excel y escribir datos en C#, Figura 5: Gestor de paquetes NuGet

     **Gestor de paquetes NuGet**
  2. Busque la Biblioteca IronXL y seleccione el proyecto actual. Haz clic en instalar.

    Cómo abrir un archivo Excel y escribir datos en C#, Figura 6: Buscar e instalar el paquete IronXL en la interfaz de NuGet Package Manager

     **Busca e instala el paquete IronXL en la interfaz de usuario del gestor de paquetes NuGet

    Añade el siguiente namespace en la parte superior del archivo Program.cs

using IronXL;
using IronXL;
Imports IronXL
VB   C#

Abrir un archivo Excel existente en C#

IronXL proporciona la facilidad para abrir un archivo de Excel existente, o puede crear un nuevo archivo de Excel. Este ejemplo va a abrir un archivo existente usando C# IronXL.

//  Formatos de hoja de cálculo compatibles para leer XLSX, XLS, XLSM, XLTX, CSV y TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
//  Formatos de hoja de cálculo compatibles para leer XLSX, XLS, XLSM, XLTX, CSV y TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
'  Formatos de hoja de cálculo compatibles para leer XLSX, XLS, XLSM, XLTX, CSV y TSV
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
VB   C#

Ahora, vamos a seleccionar su primera hoja de cálculo. Puede seleccionar una hoja de cálculo por número de índice o por nombre. La propiedad DefaultWorkSheet puede ayudar a obtener la primera hoja.

//  Seleccione la hoja de cálculo en el índice 0
WorkSheet workSheet = workBook.WorkSheets [0];

//  Seleccionar hoja de cálculo por nombre 
WorkSheet ws = wb.GetWorkSheet("Sheet1"); 

//  Obtener cualquier hoja de cálculo existente
WorkSheet firstSheet = workBook.DefaultWorkSheet;
//  Seleccione la hoja de cálculo en el índice 0
WorkSheet workSheet = workBook.WorkSheets [0];

//  Seleccionar hoja de cálculo por nombre 
WorkSheet ws = wb.GetWorkSheet("Sheet1"); 

//  Obtener cualquier hoja de cálculo existente
WorkSheet firstSheet = workBook.DefaultWorkSheet;
'  Seleccione la hoja de cálculo en el índice 0
Dim workSheet As WorkSheet = workBook.WorkSheets (0)

'  Seleccionar hoja de cálculo por nombre 
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

'  Obtener cualquier hoja de cálculo existente
Dim firstSheet As WorkSheet = workBook.DefaultWorkSheet
VB   C#

El código anterior obtiene la primera hoja del libro de Excel. Para crear un nuevo archivo Excel con datos, compruebe lo siguiente página de ejemplo de código.

Ahora, escribamos los datos en el archivo de Excel utilizando la biblioteca de objetos IronXL.

Escribir datos en un archivo Excel en C#

Escribir datos en un archivo de Excel utilizando IronXL es muy fácil. Hay múltiples formas de archivarlo, pero el método más sencillo es utilizar la referencia de celda de Excel.

//  Accede a la celda A1 y escribe el valor
workSheet ["A1"].Value = "Value using cell reference";
//  Accede a la celda A1 y escribe el valor
workSheet ["A1"].Value = "Value using cell reference";
'  Accede a la celda A1 y escribe el valor
workSheet ("A1").Value = "Value using cell reference"
VB   C#

También es posible escribir datos en un rango de celdas. El siguiente código escribe datos de la celda B1 a la B5.

workSheet ["B1:B5"].Value = "Range value";
workSheet ["B1:B5"].Value = "Range value";
workSheet ("B1:B5").Value = "Range value"
VB   C#

También podemos rellenar el rango con un bucle for haciéndolo dinámico. El código es el siguiente:

//especificar el rango en el que queremos escribir los valores
for (int i = 1; i <= 5; i++)
{
    //escribir el valor dinámico en una fila
    workSheet ["C" + i].Value = "Value: " + i;

    //escribir el valor Dinámico en otra fila
    ws ["D" + i].Value = "Value: " + i;
}
//especificar el rango en el que queremos escribir los valores
for (int i = 1; i <= 5; i++)
{
    //escribir el valor dinámico en una fila
    workSheet ["C" + i].Value = "Value: " + i;

    //escribir el valor Dinámico en otra fila
    ws ["D" + i].Value = "Value: " + i;
}
'especificar el rango en el que queremos escribir los valores
For i As Integer = 1 To 5
	'escribir el valor dinámico en una fila
	workSheet ("C" & i).Value = "Value: " & i

	'escribir el valor Dinámico en otra fila
	ws ("D" & i).Value = "Value: " & i
Next i
VB   C#

Otra forma de escribir datos en un archivo de Excel es utilizando la función Reemplazar método.

workSheet ["D5"].Replace("Value: 5", "Replaced Value");
workSheet ["D5"].Replace("Value: 5", "Replaced Value");
workSheet ("D5").Replace("Value: 5", "Replaced Value")
VB   C#

Guardar un archivo Excel en C#

En esta sección se explica cómo guardar el archivo Excel con el contenido recién escrito en él.

workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.xlsx")
VB   C#

El código es el siguiente:

using System;
using IronXL;

static void Main(string [] args)
{
    //  Formatos de hoja de cálculo compatibles para leer XLSX, XLS, XLSM, XLTX, CSV y TSV
    WorkBook workBook = WorkBook.Load("sample.xlsx");

    //  Seleccione la hoja de cálculo en el índice 0
    WorkSheet workSheet = workBook.WorkSheets [0];

    //  Accede a la celda A1 y escribe el valor
    workSheet ["A1"].Value = "Value using cell reference";

    workSheet ["B1:B5"].Value = "Range value";

    //especificar el rango en el que queremos escribir los valores
    for (int i = 1; i <= 5; i++)
    {
        //escribir el valor dinámico en una fila
        workSheet ["C" + i].Value = "Value: " + i;

        //escribir el valor Dinámico en otra fila
        workSheet ["D" + i].Value = "Value: " + i;
    }

    workSheet ["D5"].Replace("Value: 5", "Replaced Value");

    workBook.SaveAs("sample.xlsx");
    Console.WriteLine("successfully written in Excel File");
}
using System;
using IronXL;

static void Main(string [] args)
{
    //  Formatos de hoja de cálculo compatibles para leer XLSX, XLS, XLSM, XLTX, CSV y TSV
    WorkBook workBook = WorkBook.Load("sample.xlsx");

    //  Seleccione la hoja de cálculo en el índice 0
    WorkSheet workSheet = workBook.WorkSheets [0];

    //  Accede a la celda A1 y escribe el valor
    workSheet ["A1"].Value = "Value using cell reference";

    workSheet ["B1:B5"].Value = "Range value";

    //especificar el rango en el que queremos escribir los valores
    for (int i = 1; i <= 5; i++)
    {
        //escribir el valor dinámico en una fila
        workSheet ["C" + i].Value = "Value: " + i;

        //escribir el valor Dinámico en otra fila
        workSheet ["D" + i].Value = "Value: " + i;
    }

    workSheet ["D5"].Replace("Value: 5", "Replaced Value");

    workBook.SaveAs("sample.xlsx");
    Console.WriteLine("successfully written in Excel File");
}
Imports System
Imports IronXL

Shared Sub Main(ByVal args() As String)
	'  Formatos de hoja de cálculo compatibles para leer XLSX, XLS, XLSM, XLTX, CSV y TSV
	Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

	'  Seleccione la hoja de cálculo en el índice 0
	Dim workSheet As WorkSheet = workBook.WorkSheets (0)

	'  Accede a la celda A1 y escribe el valor
	workSheet ("A1").Value = "Value using cell reference"

	workSheet ("B1:B5").Value = "Range value"

	'especificar el rango en el que queremos escribir los valores
	For i As Integer = 1 To 5
		'escribir el valor dinámico en una fila
		workSheet ("C" & i).Value = "Value: " & i

		'escribir el valor Dinámico en otra fila
		workSheet ("D" & i).Value = "Value: " & i
	Next i

	workSheet ("D5").Replace("Value: 5", "Replaced Value")

	workBook.SaveAs("sample.xlsx")
	Console.WriteLine("successfully written in Excel File")
End Sub
VB   C#

Para obtener información más detallada sobre cómo leer datos de archivos Excel en C#, eche un vistazo a este ejemplo.

Salida

La salida del archivo es:

Cómo abrir un archivo Excel y escribir datos en C#, Figura 7: El archivo Excel de salida

El archivo Excel de salida

Resumen

Este artículo demuestra cómo escribir datos en archivos de Excel en C# usando IronXL. IronXL ofrece la posibilidad de trabajar con archivos Excel existentes sin ningún problema. También permite crear nuevos archivos de Excel y escribir datos en ellos con una sintaxis sencilla. IronXL también puede utilizarse para leer archivos de Excel sin tener instalada la aplicación Microsoft Excel. Para leer datos de archivos Excel puede ver esto página de ejemplo de código.

IronXL es gratuito para el desarrollo y puede adquirirse bajo licencia para uso comercial. También puedes probar IronXL gratis ensayo para uso comercial.

< ANTERIOR
Cómo Deshabilitar la Vista Protegida en Excel Usando C#
SIGUIENTE >
Cómo Exportar Grandes Datos de Datatable a Excel en C#

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 897,936 Ver licencias >
123