C# Editar archivo Excel
Los desarrolladores tienen que tener cuidado cuando se disponen a modificar y editar archivos Excel en C# porque puede ser fácil que un paso en falso cambie todo el documento. Poder confiar en líneas de código sencillas y eficaces ayuda a reducir el riesgo de error y nos facilita la edición o eliminación de archivos Excel mediante programación. Hoy recorreremos los pasos necesarios para editar archivos Excel en C# de forma correcta y rápida utilizando funciones probadas.
Cómo editar un archivo Excel en C#
- Descargar la biblioteca C# Edit Excel
- Editar valores de celda específicos
- Editar valores de filas completas de una hoja de cálculo Excel con un valor estático
- Editar columnas completas de valores de hojas de cálculo Excel con un solo valor
- Editar fila completa con valores dinámicos
- Sustituir valores de hoja de cálculo
- Eliminar Fila de una Hoja de Excel
- Eliminar hoja de trabajo de un archivo Excel
Primer paso
1. C# Editar Archivos Excel usando la Librería IronXL
Para este tutorial, utilizaremos las funciones definidas por IronXL, una biblioteca de Excel en C#. Para utilizar estas funciones, primero tendrás que descargarlo e instalarlo en tu proyecto(libre para el desarrollo).
Puede Descargar IronXL.zip o lea más e instálelo a través de Página del paquete NuGet.
Una vez que lo hayas instalado, vamos a empezar!
Install-Package IronXL.Excel
Tutorial
2. Editar valores de celda específicos
En primer lugar, veremos cómo editar los valores específicos de las celdas de una Hoja de Cálculo Excel.
Para ello, importamos la Hoja de Cálculo Excel que se va a modificar y accedemos a su Hoja de Trabajo. A continuación, podemos aplicar las modificaciones como se muestra a continuación.
/**
Import and Edit SpreadSheet
anchor-edit-specific-cell-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");//import Excel SpreadSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");//access specific workshet
ws.Rows [3].Columns [1].Value = "New Value";//access specific cell and modify its value
wb.SaveAs("sample.xlsx");//save changes
}
/**
Import and Edit SpreadSheet
anchor-edit-specific-cell-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");//import Excel SpreadSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");//access specific workshet
ws.Rows [3].Columns [1].Value = "New Value";//access specific cell and modify its value
wb.SaveAs("sample.xlsx");//save changes
}
'''
'''Import and Edit SpreadSheet
'''anchor-edit-specific-cell-values
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
Dim wb As WorkBook = WorkBook.Load("sample.xlsx") 'import Excel SpreadSheet
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") 'access specific workshet
ws.Rows (3).Columns (1).Value = "New Value" 'access specific cell and modify its value
wb.SaveAs("sample.xlsx") 'save changes
End Sub
Here are before and after screenshots of Excel SpreadSheet sample.xlsx
:
Before After
:---: :-----:
We can see how simple it is to modify the Excel SpreadSheet value.
If needed, there is also an alternative way to edit the specific cell value by cell address:
ws ["B4"].Value = "New Value"; //alternative way to access specific cell and apply changes
ws ["B4"].Value = "New Value"; //alternative way to access specific cell and apply changes
ws ("B4").Value = "New Value" 'alternative way to access specific cell and apply changes
3. Editar valores de fila completa
Es bastante sencillo editar valores de filas completas de una Hoja de Cálculo Excel con un valor estático.
/**
Edit Full Row Values
anchor-edit-full-row-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
/**
Edit Full Row Values
anchor-edit-full-row-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Full Row Values
'''anchor-edit-full-row-values
'''*
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.Rows (3).Value = "New Value"
wb.SaveAs("sample.xlsx")
End Sub
Vea las capturas de pantalla de sample.xlsx
a continuación:
Antes de En
:---: :-----:
Para ello, también podemos editar el valor de un rango específico de la fila, utilizando la función rango:
ws ["A3:E3"].Value = "New Value";
ws ["A3:E3"].Value = "New Value";
ws ("A3:E3").Value = "New Value"
4. Editar valores de columna completos
Del mismo modo que en el caso anterior, podemos editar fácilmente columnas completas de valores de hojas de cálculo de Excel con un único valor.
/**
Edit Full Column Values
anchor-edit-full-column-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Columns [1].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
/**
Edit Full Column Values
anchor-edit-full-column-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Columns [1].Value = "New Value";
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Full Column Values
'''anchor-edit-full-column-values
'''*
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.Columns (1).Value = "New Value"
wb.SaveAs("sample.xlsx")
End Sub
Lo que producirá nuestra hoja de cálculo sample.xlsx
como tal:
Antes de En
:---: :-----:
5. Editar fila completa con valores dinámicos
Con IronXL, también es posible editar filas específicas con valores dinámicos. Esto significa que podemos editar una fila completa asignando valores dinámicos a cada celda. Veamos el ejemplo:
/**
Edit Row Dynamic Values
anchor-edit-full-row-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Columns.Count(); i++)
{
ws.Rows [3].Columns [i].Value = "New Value "+i.ToString();
}
wb.SaveAs("sample.xlsx");
}
/**
Edit Row Dynamic Values
anchor-edit-full-row-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Columns.Count(); i++)
{
ws.Rows [3].Columns [i].Value = "New Value "+i.ToString();
}
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Row Dynamic Values
'''anchor-edit-full-row-with-dynamic-values
'''*
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 = 0 To ws.Columns.Count() - 1
ws.Rows (3).Columns (i).Value = "New Value " & i.ToString()
Next i
wb.SaveAs("sample.xlsx")
End Sub
En la siguiente tabla, vemos las capturas de pantalla de Excel SpreadSheet sample.xlsx
de esta salida:
Antes de En
:---: :-----:
6. Editar columna completa con valores dinámicos
También es sencillo editar columnas específicas con valores dinámicos.
/**
Edit Column Dynamic Values
anchor-edit-full-column-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Rows.Count(); i++)
{
if (i == 0)//it is for if our first column is used as a header
continue;
ws.Rows [i].Columns [1].Value = "New Value " + i.ToString();
}
wb.SaveAs("sample.xlsx");
}
/**
Edit Column Dynamic Values
anchor-edit-full-column-with-dynamic-values
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
for (int i = 0; i < ws.Rows.Count(); i++)
{
if (i == 0)//it is for if our first column is used as a header
continue;
ws.Rows [i].Columns [1].Value = "New Value " + i.ToString();
}
wb.SaveAs("sample.xlsx");
}
'''
'''Edit Column Dynamic Values
'''anchor-edit-full-column-with-dynamic-values
'''*
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 = 0 To ws.Rows.Count() - 1
If i = 0 Then 'it is for if our first column is used as a header
Continue For
End If
ws.Rows (i).Columns (1).Value = "New Value " & i.ToString()
Next i
wb.SaveAs("sample.xlsx")
End Sub
Con la tabla de resultados de sample.xlsx
a continuación:
Antes de En
:---: :-----:
7. Sustituir valores de hoja de cálculo
Si queremos reemplazar cualquier tipo de valor por un valor actualizado en una Hoja de Cálculo Excel, podemos utilizar la función llamada Replace
. Usando esta función, podemos reemplazar los datos de Excel SpreadSheet en cualquier situación requerida.
7.1. Sustituir valor específico de hoja de trabajo completa
Para reemplazar un valor específico de una Hoja de Trabajo Excel completa por un valor actualizado, sólo tenemos que acceder a la Hoja de Trabajo ws
.(igual que en los ejemplos anteriores) y aplicar la función Replace
así.
/**
Replace Cell Values
anchor-replace-specific-value-of-complete-worksheet
**/
ws.Replace("old value", "new value");
/**
Replace Cell Values
anchor-replace-specific-value-of-complete-worksheet
**/
ws.Replace("old value", "new value");
'''
'''Replace Cell Values
'''anchor-replace-specific-value-of-complete-worksheet
'''*
ws.Replace("old value", "new value")
Esta función reemplazará el viejo valor
por el nuevo valor
en una Hoja de Trabajo Excel completa.
No olvides guardar el archivo después de cualquier cambio, como se muestra en los ejemplos anteriores.
7.2. Sustituir los valores de una fila específica
Si sólo desea realizar cambios en una fila específica en lugar de en todo el resto de la hoja de cálculo, utilice este código.
ws.Rows [2].Replace("old value", "new value");
ws.Rows [2].Replace("old value", "new value");
ws.Rows (2).Replace("old value", "new value")
El código anterior sustituirá el valor antiguo
por el valor nuevo
sólo en la fila número 2
. El resto de la Hoja de Trabajo permanece igual.
7.3. Sustituir los valores del rango de filas
También podemos reemplazar los valores dentro de un rango específico de la siguiente manera:
ws ["From Cell Address : To Cell Address"].Replace("old value", "new value");
ws ["From Cell Address : To Cell Address"].Replace("old value", "new value");
ws ("From Cell Address : To Cell Address").Replace("old value", "new value")
Supongamos que queremos sustituir el valor antiguo por el nuevo, justo en el rango de B4
a E4
de la fila nº 4
, entonces lo escribiríamos así:
ws ["B4:E4"].Replace("old value", "new value");
ws ["B4:E4"].Replace("old value", "new value");
ws ("B4:E4").Replace("old value", "new value")
7.4. Sustituir los valores de una columna específica
También podemos sustituir los valores de una columna concreta, y el resto de la hoja de cálculo permanece igual.
ws.Columns [1].Replace("old value", "new Value")
ws.Columns [1].Replace("old value", "new Value")
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'ws.Columns [1].Replace("old value", "new Value")
El código anterior sustituirá el valor antiguo
por el valor nuevo
sólo para la columna número 1
.
7.5. Sustituir los valores del rango de columnas
De la siguiente manera, también podemos utilizar la función de rango para reemplazar dentro de un rango de una columna específica.
ws ["B5:B10"].Replace("old value", "new value");
ws ["B5:B10"].Replace("old value", "new value");
ws ("B5:B10").Replace("old value", "new value")
El código anterior reemplazará el valor antiguo
por el valor nuevo
dentro del rango de B5
a B10
para la columna B
.
8. Eliminar Fila de la Hoja de Excel
IronXL provee una función muy simple para remover una fila específica de una Hoja de Trabajo de Excel. Veamos el ejemplo.
/**
Remove Row
anchor-remove-row-from-excel-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].RemoveRow();
wb.SaveAs("sample.xlsx");
}
/**
Remove Row
anchor-remove-row-from-excel-worksheet
**/
using IronXL;
static void Main(string [] args)
{
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");
ws.Rows [3].RemoveRow();
wb.SaveAs("sample.xlsx");
}
'''
'''Remove Row
'''anchor-remove-row-from-excel-worksheet
'''*
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.Rows (3).RemoveRow()
wb.SaveAs("sample.xlsx")
End Sub
El código anterior eliminará la fila número 3 de sample.xlsx
como se muestra en la siguiente tabla:
Antes de En
:---: :-----:
9. Eliminar hoja de trabajo de un archivo Excel
Si queremos eliminar una WorkSheet completa de un fichero Excel, podemos utilizar el siguiente método:
/**
Remove Worksheet from File
anchor-remove-worksheet-from-excel-file
**/
wb.RemoveWorkSheet(1); // by sheet indexing
/**
Remove Worksheet from File
anchor-remove-worksheet-from-excel-file
**/
wb.RemoveWorkSheet(1); // by sheet indexing
'''
'''Remove Worksheet from File
'''anchor-remove-worksheet-from-excel-file
'''*
wb.RemoveWorkSheet(1) ' by sheet indexing
wb` es el WorkBook, igual que en los ejemplos anteriores. Si queremos eliminar la hoja de trabajo por su nombre, entonces:
wb.RemoveWorkSheet("Sheet1"); //by sheet name
wb.RemoveWorkSheet("Sheet1"); //by sheet name
wb.RemoveWorkSheet("Sheet1") 'by sheet name
IronXL es rico con muchas más funciones por las cuales podemos realizar fácilmente cualquier tipo de edición y eliminación en hojas de cálculo de Excel. Póngase en contacto con nuestro equipo de desarrollo si tiene alguna pregunta para utilizarlo en su proyecto.
Acceso rápido a la biblioteca
Documentación de la biblioteca IronXL
Explore todas las capacidades de la librería IronXL C# con varias funciones para editar, borrar, estilizar y perfeccionar sus libros de Excel.
Documentación de la biblioteca IronXL