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

Muchos proyectos de aplicaciones C# requieren que actualicemos archivos y escribamos nuevos datos en hojas de cálculo de Excel programáticamente. Las capacidades de Excel .NET pueden ser a veces complicadas, pero usando la biblioteca IronXL, esta tarea es bastante simple y permite trabajar con hojas de cálculo de Excel en cualquier formato. Sin líneas de código voluminosas, solo acceso a las celdas específicas y a los valores personalizados que asigne.

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

Este ejemplo muestra cuán fácilmente puede escribir un valor en una sola celda usando IronXL y guardar el archivo de Excel en solo un par de líneas: comience sin plantillas ni complejidad.

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

Acceder a archivos de Excel

Comencemos accediendo al archivo de Excel en el que queremos escribir los datos. Abramos el archivo de Excel en nuestro proyecto y luego abramos su hoja de trabajo específica usando 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 abrirá el archivo de Excel especificado. A continuación, acceda a la hoja de trabajo.

: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 abrirá en worksheet y podemos usarla para escribir cualquier tipo de dato en el archivo Excel. Aprenda más sobre cómo cargar archivos Excel y acceder a hojas de trabajo de diferentes maneras a través de los ejemplos en el enlace.

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


Escribir valor en una celda específica

Podemos escribir en un archivo Excel usando muchos métodos diferentes, pero el enfoque básico es usar 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

Aquí hay un ejemplo de cómo usar la función anterior para escribir en una Celda Excel en nuestro proyecto 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 escribirá new value en la celda A1 de la hoja de trabajo Sheet1 en el archivo Excel sample.xlsx. De la misma manera, podemos insertar valores en cualquier dirección de celda de un archivo Excel.

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.

Forzar la asignación del valor exacto

Al establecer la propiedad Value, IronXL intentará convertirla a su tipo de valor correspondiente. A veces, esta evaluación no es deseable ya que el usuario quiere asignar forzadamente el 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

Escribir valores estáticos en un rango

Podemos escribir nuevos valores en múltiples celdas, llamado un 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 manera, especificamos el rango de celdas From a To donde se escribirán los datos. El new value se escribirá en todas las celdas que se encuentren en este rango. Para entender más sobre Rango Excel en C#, consulte los ejemplos aquí.

Veamos cómo escribir un rango en acción usando el siguiente ejemplo.

: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 escribirá new value desde B2 hasta C5 en la hoja de trabajo Sheet1 del archivo Excel sample.xlsx. Usa valores estáticos para las celdas de Excel.


Escribir valores dinámicos en un rango

También podemos añadir valores dinámicos a un rango, como se muestra a continuación.

: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 escribirá valores dinámicos en las columnas B desde 2 hasta 7 en el archivo Excel sample.xlsx. Podemos ver el resultado del código en sample.xlsx.

1excel related to Escribir valores dinámicos en un rango

Reemplazar valor de celda de Excel

Usando IronXL, podemos escribir fácilmente un nuevo valor para reemplazar el valor antiguo, usando la función Replace() de la siguiente forma:

: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 escribirá new value sobrescribiendo el old value en toda la hoja de trabajo de Excel.

Reemplazar el valor de la celda en una fila específica

Si queremos escribir un nuevo valor solo 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 escribirá new value sobre el old value solo en el índice de fila especificado.

Reemplazar el valor de la celda en una columna específica

De manera similar, si queremos escribir new value sobre el old value dentro de una columna específica, hágalo de la siguiente forma:

: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 escribirá new value para reemplazar old value, pero solo en el índice de columna especificado. El resto de la hoja de trabajo permanece igual.

Reemplazar el valor de celda 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.

: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 escribirá new value sobre old value, solo en las celdas que se encuentren en el rango especificado.

Veamos el ejemplo de cómo usar todas las funciones anteriores para escribir nuevos valores para reemplazar valores antiguos en una hoja de trabajo Excel.

Ejemplo de todas las funciones

: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#.


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 comienzo a escribir archivos de Excel en .NET?

Para comenzar con IronXL, descargue la biblioteca e inclúyala en su proyecto. Importe la biblioteca usando using IronXL en su código C#.

¿Cómo puedo escribir un valor en una celda específica en una hoja de cálculo de Excel?

Para escribir un valor en una celda específica usando IronXL, acceda a la celda usando su dirección, como worksheet['A1'], y asigne un valor usando la propiedad .Value.

¿Cómo asigno un valor estático a un rango de celdas en Excel?

Para asignar un valor estático a un rango usando IronXL, especifique el rango usando direcciones de celdas, como worksheet['B2:C5'], y establezca la propiedad .Value al valor estático deseado.

¿Puedo escribir valores dinámicos en un rango de celdas en Excel?

Sí, con IronXL, puede escribir valores dinámicos en un rango usando bucles o lógica personalizada. Por ejemplo, puede iterar sobre direcciones de celdas y asignar valores dinámicos según sus requisitos.

¿Cómo reemplazo valores en celdas de Excel?

Usando IronXL, puede usar el método Replace() en la hoja de cálculo, fila, columna o rango especificado para reemplazar 'valor antiguo' con 'valor nuevo'.

¿Cuál es la diferencia entre usar Value y StringValue?

En IronXL, la propiedad .Value puede convertir el valor asignado a un formato específico de tipo, mientras que .StringValue asigna el valor como una cadena, evitando la conversión.

¿Cómo puedo abrir y acceder a una hoja de cálculo específica en un archivo de Excel?

Use WorkBook.Load('path/to/your/excel-file.xlsx') de IronXL para cargar el archivo y workbook.GetWorkSheet('SheetName') para acceder a una hoja de cálculo específica.

¿Es necesario guardar el archivo de Excel después de escribir nuevos valores?

Sí, al usar IronXL, debe guardar el archivo de Excel después de realizar cambios usando el método workbook.SaveAs('filename.xlsx') para persistir sus cambios.

¿Cómo escribo un nuevo valor para reemplazar un valor antiguo en una fila específica?

Con IronXL, acceda a la fila usando worksheet.Rows[index] y luego llame al método Replace() con los valores antiguos y nuevos.

¿Puedo reemplazar valores en una columna específica?

Sí, usando IronXL, acceda a la columna usando worksheet.Columns['A'] y use el método Replace() para sustituir valores antiguos por nuevos en esa columna.

¿Cómo aseguro que mi proyecto C# pueda interactuar con archivos de Excel?

Asegúrese de que su proyecto C# haga referencia a la biblioteca IronXL descargándola y agregándola a las referencias de su proyecto. Esto facilita la interacción con archivos de Excel.

¿Cuáles son algunos problemas comunes al escribir en archivos de Excel en .NET?

Los problemas comunes incluyen no hacer referencia correctamente a la biblioteca IronXL, formato incorrecto de direcciones de celdas y olvidar guardar los cambios. Asegure la configuración y sintaxis adecuadas.

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,738,553 | Version: 2025.11 recién lanzado