Cómo escribir en archivos de Excel en .NET con C#

Escriba funciones de Excel .NET en C# con IronXL

This article was translated from English: Does it need improvement?
Translated
View the article in English

Escriba datos de Excel en C# utilizando IronXL accediendo a hojas de cálculo, estableciendo valores de celda con notación simple de corchetes y guardando los cambios. La biblioteca permite escribir en celdas o rangos específicos y sustituir valores mediante programación sin necesidad de código complejo.

Las aplicaciones de C# a menudo necesitan actualizar archivos y escribir nuevos datos en hojas de cálculo de Excel mediante programación. Las capacidades de Excel .NET a veces pueden ser complicadas, pero utilizando la biblioteca IronXL, esta tarea es sencilla y permite trabajar con hojas de cálculo de Excel en cualquier formato. Acceda directamente a celdas específicas y asigne valores personalizados con un código mínimo. Ya sea que esté creando nuevas hojas de cálculo o editando archivos de Excel existentes, IronXL proporciona métodos intuitivos para todas sus necesidades de automatización de Excel.

como-título:2(Inicio rápido: Escribir un valor en una celda específica)

Este ejemplo muestra cómo escribir un valor en una sola celda utilizando IronXL y guardar el archivo de Excel en unas pocas líneas.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronXL con el gestor de paquetes NuGet

    PM > Install-Package IronXL.Excel

  2. Copie y ejecute este fragmento de código.

    worksheet["A1"].Value = "Hello, IronXL!";
    workbook.SaveAs("output.xlsx");
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronXL en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

Escribir instrucciones en Excel .NET

  • Descargue la biblioteca para Excel .NET
  • Escriba valores en celdas específicas
  • Escriba valores estáticos en múltiples celdas
  • Escriba valores dinámicos en un rango de celdas
  • Reemplace valores de celdas en una fila, columna, rango específicos y más
How To Work related to Escriba funciones de Excel .NET en C# con IronXL

¿Cómo se accede a los archivos de Excel?

Comience por acceder al archivo Excel en el que desea escribir los datos. Abra el archivo Excel en su proyecto y, a continuación, abra su hoja de cálculo específica utilizando el siguiente código.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-load-file.cs
// Load Excel file in the project
WorkBook workBook = WorkBook.Load("path");
' Load Excel file in the project
Dim workBook As WorkBook = WorkBook.Load("path")
$vbLabelText   $csharpLabel

Lo anterior abre el archivo Excel especificado. A continuación, accede a la hoja de cálculo.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-get-sheet.cs
// Open Excel WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
' Open Excel WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

La hoja de trabajo de Excel se abre en workSheet y se puede utilizar para escribir cualquier tipo de datos en el archivo de Excel. Obtenga más información sobre cómo cargar archivos Excel y acceder a hojas de trabajo de distintas formas a través de los ejemplos del enlace. Para trabajar con varias hojas de cálculo, consulte nuestra guía sobre gestión de hojas de cálculo, que cubre la adición, el cambio de nombre y la eliminación de hojas mediante programación.

Nota: No olvide agregar la referencia a IronXL en su proyecto e importar la biblioteca usando using IronXL.


¿Cómo escribo un valor en una celda específica?

Se puede escribir en un archivo Excel utilizando muchos métodos diferentes, pero el enfoque básico utiliza ExcelCell. Para este propósito, se puede acceder a cualquier celda de la hoja de trabajo de Excel abierta y escribir un valor en ella de la siguiente manera:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell.cs
workSheet["Cell Address"].Value="Assign the Value";
workSheet("Cell Address").Value="Assign the Value"
$vbLabelText   $csharpLabel

He aquí un ejemplo de cómo utilizar la función anterior para escribir en una celda de Excel en su proyecto de C#.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-full.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

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

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Access A1 cell and write the value
Private workSheet("A1").Value = "new value"

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Este código escribe nuevo valor en la celda A1 de la hoja de cálculo Hoja1 en el archivo de Excel sample.xlsx. Del mismo modo, se pueden insertar valores en cualquier dirección de celda de un archivo Excel. Para opciones de formato más avanzadas, como establecer fuentes y tamaños de celda o aplicar colores y patrones de fondo, IronXL proporciona completas funciones de estilo.

Nota: No olvide guardar el archivo Excel después de escribir nuevos valores en la hoja de trabajo, como se muestra en el ejemplo anterior.

¿Por qué debería forzar la asignación de valores exactos?

Al establecer la propiedad Value, IronXL intenta convertirla a su tipo de valor correspondiente. A veces, esta evaluación no es deseable, ya que se quiere forzar la asignación del valor exacto a la celda sin conversión. Para hacer esto, asigne el valor como una cadena. En IronXL, simplemente use StringValue en lugar de Value para lograr el mismo efecto.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-stringvalue.cs
// Assign value as string
workSheet["A1"].StringValue = "4402-12";
' Assign value as string
workSheet("A1").StringValue = "4402-12"
$vbLabelText   $csharpLabel

¿Cómo escribo valores estáticos en un rango?

Puede escribir nuevos valores en varias celdas, denominadas rango, de la siguiente manera:

// Assign a static value to a range of cells
worksheet["B2:C5"].Value = "static value";
// Assign a static value to a range of cells
worksheet["B2:C5"].Value = "static value";
' Assign a static value to a range of cells
worksheet("B2:C5").Value = "static value"
$vbLabelText   $csharpLabel

De esta forma, se especifica el rango de celdas Desde hasta Hasta donde se escribirán los datos. El nuevo valor se escribirá en todas las celdas dentro de este rango. Para entender más sobre Rango Excel en C#, consulte los ejemplos aquí.

Vea cómo escribir un rango en acción utilizando el ejemplo siguiente.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-cell-range-full.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify range row wise and write new value
workSheet["B2:B9"].Value = "new value";

// Specify range column wise and write new value
workSheet["C3:C7"].Value = "new value";

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify range row wise and write new value
Private workSheet("B2:B9").Value = "new value"

' Specify range column wise and write new value
Private workSheet("C3:C7").Value = "new value"

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Este código escribe nuevo valor de B2 a C5 en la hoja de cálculo Sheet1 del archivo Excel sample.xlsx. Usa valores estáticos para las celdas de Excel.


¿Cómo escribo valores dinámicos en un rango?

También puede añadir valores dinámicos a un rango, como se ve a continuación. Esto es especialmente útil cuando se necesita rellenar datos de una base de datos o cuando se generan informes. También puede explorar importar y exportar como DataSet para operaciones de datos más complejas.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-assign-dynamic-value.cs
using IronXL;

// Load Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Open WorkSheet of sample.xlsx
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify range in which we want to write the values
for (int i = 2; i <= 7; i++)
{
    // Write the Dynamic value in one row
    workSheet["B" + i].Value = "Value" + i;

    // Write the Dynamic value in another row
    workSheet["D" + i].Value = "Value" + i;
}

// Save changes
workBook.SaveAs("sample.xlsx");
Imports IronXL

' Load Excel file
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Open WorkSheet of sample.xlsx
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify range in which we want to write the values
For i As Integer = 2 To 7
	' Write the Dynamic value in one row
	workSheet("B" & i).Value = "Value" & i

	' Write the Dynamic value in another row
	workSheet("D" & i).Value = "Value" & i
Next i

' Save changes
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

El código anterior escribe valores dinámicos en las columnas B de 2 a 7 en el archivo de Excel sample.xlsx. Puedes ver el resultado del código en sample.xlsx.

Hoja de cálculo que muestra dos rangos resaltados B2:B7 y D2:D7 poblados con Valor2 a Valor7

¿Cómo reemplazar valores de celdas de Excel?

Usando IronXL, puede escribir fácilmente un nuevo valor para reemplazar el valor anterior, utilizando la función Replace() de la siguiente manera:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace.cs
workSheet.Replace("old value", "new value");
workSheet.Replace("old value", "new value")
$vbLabelText   $csharpLabel

La función anterior escribe nuevo valor sobrescribiendo el viejo valor en la hoja de cálculo Excel completa.

¿Cómo reemplazar valores en una fila específica?

Si desea escribir un nuevo valor sólo en una fila específica, haga lo siguiente:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-row.cs
workSheet.Rows[RowIndex].Replace("old value", "new value");
workSheet.Rows(RowIndex).Replace("old value", "new value")
$vbLabelText   $csharpLabel

Esto escribe nuevo valor sobre el viejo valor sólo en el índice de fila especificado.

¿Cómo reemplazar valores en una columna específica?

Del mismo modo, si desea escribir nuevo valor sobre el viejo valor dentro de una columna específica, haga lo siguiente:

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-column.cs
workSheet.Columns[ColumnIndex].Replace("old value", "new Value");
workSheet.Columns(ColumnIndex).Replace("old value", "new Value")
$vbLabelText   $csharpLabel

El código anterior escribe nuevo valor para reemplazar el viejo valor, pero sólo en el índice de columna especificado. El resto de la hoja de trabajo permanece igual.

¿Cómo reemplazar valores en un rango específico?

IronXL también proporciona una manera de escribir un new value reemplazando el old value, solo en un rango especificado. Esto resulta útil cuando se trabaja con regiones de datos específicas o cuando es necesario actualizar valores en una sección concreta de la hoja de cálculo. Para operaciones de rango más avanzadas, consulte nuestra guía sobre ordenación de rangos de celdas.

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-range.cs
workSheet["From Cell Address : To Cell Address"].Replace("old value", "new value");
workSheet("From Cell Address : To Cell Address").Replace("old value", "new value")
$vbLabelText   $csharpLabel

Esto escribe nuevo valor sobre viejo valor, sólo en las celdas dentro del rango especificado.

Vea el ejemplo de cómo utilizar todas las funciones anteriores para escribir nuevos valores que sustituyan a los antiguos en una hoja de cálculo de Excel.

¿Cómo es un ejemplo de reemplazo completo?

:path=/static-assets/excel/content-code-examples/how-to/write-excel-net-replace-full.cs
using IronXL;

WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Write new above old in complete WorkSheet
workSheet.Replace("old", "new");

// Write new above old just in row no 6 of WorkSheet
workSheet.Rows[5].Replace("old", "new");

// Write new above old just in column no 5 of WorkSheet
workSheet.Columns[4].Replace("old", "new");

// Write new above old just from A5 to H5 of WorkSheet
workSheet["A5:H5"].Replace("old", "new");

workBook.SaveAs("sample.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("sample.xlsx")
Private workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Write new above old in complete WorkSheet
workSheet.Replace("old", "new")

' Write new above old just in row no 6 of WorkSheet
workSheet.Rows(5).Replace("old", "new")

' Write new above old just in column no 5 of WorkSheet
workSheet.Columns(4).Replace("old", "new")

' Write new above old just from A5 to H5 of WorkSheet
workSheet("A5:H5").Replace("old", "new")

workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Para más información sobre cómo escribir aplicaciones Excel .NET y más, consulte nuestro tutorial completo sobre cómo Abrir y Escribir Archivos Excel en C#. Si trabajas con distintos formatos de archivo, puede que también te resulte útil nuestra guía sobre conversión de tipos de archivo de hoja de cálculo.


Tutorial de acceso rápido

Leer la referencia de la API

Lea la documentación de IronXL, incluidas listas de todas las funciones, características, espacios de nombres, clases y enumeraciones disponibles en la biblioteca.

Leer la referencia de la API
Documentation related to Tutorial de acceso rápido

Preguntas Frecuentes

¿Cómo escribo un valor en una celda específica de un archivo Excel utilizando C#?

Con IronXL, puedes escribir en una celda específica simplemente accediendo a ella con la notación de corchetes y estableciendo su propiedad Valor. Por ejemplo: worksheet["A1"].Value = "¡Hola, IronXL!"; a continuación, guarde el libro de trabajo con workbook.SaveAs("output.xlsx"). Este enfoque directo elimina la necesidad de un complejo código de interoperabilidad de Excel.

¿Cuál es el primer paso para escribir datos en un archivo Excel mediante programación?

El primer paso es cargar su archivo de Excel utilizando el método WorkBook.Load() de IronXL, y luego acceder a la hoja de trabajo específica donde desea escribir los datos. IronXL hace esto simple con métodos intuitivos que le permiten abrir cualquier formato de Excel e inmediatamente empezar a trabajar con celdas y rangos.

¿Puedo escribir datos en varias celdas a la vez en Excel?

Sí, IronXL admite la escritura en múltiples celdas de manera eficiente. Puede escribir valores estáticos en varias celdas específicas de forma individual o utilizar rangos de celdas para escribir valores dinámicos en varias celdas mediante programación. La biblioteca proporciona métodos tanto para operaciones de celda única como para la escritura masiva de datos.

¿Cómo se sustituyen los valores de una celda en una hoja de cálculo de Excel?

IronXL le permite reemplazar valores de celda simplemente accediendo a la celda y asignándole un nuevo valor. Puede reemplazar valores en filas, columnas o rangos específicos. La biblioteca gestiona automáticamente la sobrescritura de los datos existentes cuando se asignan nuevos valores a las celdas.

¿Qué formatos de archivo de Excel se admiten para escribir datos?

IronXL admite la escritura en los principales formatos de archivo de Excel, incluidos los archivos .xlsx, .xls, .xlsm y CSV. La biblioteca maneja automáticamente los requisitos específicos del formato, lo que le permite trabajar con hojas de cálculo de Excel en cualquier formato sin cambiar el enfoque de su código.

¿Necesito tener instalado Microsoft Excel para escribir archivos Excel en C#?

No, IronXL funciona de forma independiente sin requerir Microsoft Excel u Office Interop. Es una biblioteca .NET independiente que puede leer, escribir y crear archivos de Excel mediante programación en cualquier sistema, lo que la hace perfecta para aplicaciones de servidor y entornos en los que Excel no está instalado.

¿Cómo se guardan los cambios después de escribir datos en un archivo de Excel?

Después de escribir datos en las celdas, guarde sus cambios utilizando el método SaveAs() de IronXL para crear un nuevo archivo, o Save() para sobrescribir el archivo existente. La biblioteca garantiza que todas las actualizaciones de celdas, el formato y las fórmulas se guarden correctamente en el formato de archivo de Excel que especifique.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 1,765,830 | Versión: 2025.12 recién lanzado