USO DE IRONXL

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

Actualizado 31 de marzo, 2024
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 admitetodos los formatos de archivo de libros de Excelincluyendo 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, comocristales de congelación, tamaño automático de filas/columnasyañadir/eliminar filas/columnas.

IronXL tambiénpermite 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 variasformatos 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 deSitio 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.

// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and 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.

// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets [0];

// Select worksheet by name 
WorkSheet ws = wb.GetWorkSheet("Sheet1"); 

// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets [0];

// Select worksheet by name 
WorkSheet ws = wb.GetWorkSheet("Sheet1"); 

// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
' Select worksheet at index 0
Dim workSheet As WorkSheet = workBook.WorkSheets (0)

' Select worksheet by name 
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

' Get any existing worksheet
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 siguientepá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.

// Access A1 cell and write the value
workSheet ["A1"].Value = "Value using cell reference";
// Access A1 cell and write the value
workSheet ["A1"].Value = "Value using cell reference";
' Access A1 cell and write the value
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:

//specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
    //write the Dynamic value in one row
    workSheet ["C" + i].Value = "Value: " + i;

    //write the Dynamic value in another row
    ws ["D" + i].Value = "Value: " + i;
}
//specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
    //write the Dynamic value in one row
    workSheet ["C" + i].Value = "Value: " + i;

    //write the Dynamic value in another row
    ws ["D" + i].Value = "Value: " + i;
}
'specify range in which we want to write the values
For i As Integer = 1 To 5
	'write the Dynamic value in one row
	workSheet ("C" & i).Value = "Value: " & i

	'write the Dynamic value in another row
	ws ("D" & i).Value = "Value: " & i
Next i
VB   C#

Otra forma de escribir datos en un archivo de Excel es utilizando la funciónReemplazar 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)
{
    // Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
    WorkBook workBook = WorkBook.Load("sample.xlsx");

    // Select worksheet at index 0
    WorkSheet workSheet = workBook.WorkSheets [0];

    // Access A1 cell and write the value
    workSheet ["A1"].Value = "Value using cell reference";

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

    //specify range in which we want to write the values
    for (int i = 1; i <= 5; i++)
    {
        //write the Dynamic value in one row
        workSheet ["C" + i].Value = "Value: " + i;

        //write the Dynamic value in another row
        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)
{
    // Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
    WorkBook workBook = WorkBook.Load("sample.xlsx");

    // Select worksheet at index 0
    WorkSheet workSheet = workBook.WorkSheets [0];

    // Access A1 cell and write the value
    workSheet ["A1"].Value = "Value using cell reference";

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

    //specify range in which we want to write the values
    for (int i = 1; i <= 5; i++)
    {
        //write the Dynamic value in one row
        workSheet ["C" + i].Value = "Value: " + i;

        //write the Dynamic value in another row
        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)
	' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
	Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

	' Select worksheet at index 0
	Dim workSheet As WorkSheet = workBook.WorkSheets (0)

	' Access A1 cell and write the value
	workSheet ("A1").Value = "Value using cell reference"

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

	'specify range in which we want to write the values
	For i As Integer = 1 To 5
		'write the Dynamic value in one row
		workSheet ("C" & i).Value = "Value: " & i

		'write the Dynamic value in another row
		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 aeste 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 estopá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 gratisensayo 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.11 acaba de salir

Descarga gratuita de NuGet Descargas totales: 1,111,773 Ver licencias >