C# Excel Add in (Tutorial de ejemplo de código)

Cuando se desarrollan aplicaciones, es necesario poder gestionar los datos sin hojas de cálculo Excel, pero sin dejar de poder comunicarse con los archivos. Por ejemplo, puede que necesite insertar nuevas filas o columnas en una Hoja de Cálculo Excel existente mediante programación. Utilizando las funciones del concepto paraguas "Excel: Add" en C#, podemos añadir todo esto y más. Vea los ejemplos siguientes.


Primer paso

1. Descargue la biblioteca IronXL Excel

Para acceder a las funciones para agregar filas y columnas en Excel, primero necesitamos descargar la Biblioteca de Excel IronXL. Esto es libre para el desarrollo en su proyecto. Descargar directamente la DLL o puede utilizar la función Método de instalación NuGet.

Install-Package IronXL.Excel

Tutorial

2. Excel Añadir Fila en C#

Ahora que hemos instalado IronXL, será fácil insertar nuevas filas y columnas en Hojas de Cálculo Excel existentes utilizando programación C#.

En primer lugar, acceda a su hoja de cálculo Excel y especifique la hoja de trabajo en la que desea añadir nuevas filas o columnas.

2.1. Añadir fila en la última posición

En nuestro primer ejemplo, mostraremos cómo añadir la nueva fila en la última posición.

Supongamos que nuestro fichero Excel se llama sample.xlsx, y tiene 5 columnas de A a E. Utilizando el siguiente método podemos añadir una nueva fila:

/**
Add Row Last Position
anchor-add-row-in-last-position
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    int i = ws.Rows.Count() + 1;
    ws ["A" + i].Value = "New Row";
    ws ["B" + i].Value = "New Row";
    ws ["C" + i].Value = "New Row";
    ws ["D" + i].Value = "New Row";
    ws ["E" + i].Value = "New Row";
    wb.SaveAs("sample.xlsx");
}
/**
Add Row Last Position
anchor-add-row-in-last-position
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    int i = ws.Rows.Count() + 1;
    ws ["A" + i].Value = "New Row";
    ws ["B" + i].Value = "New Row";
    ws ["C" + i].Value = "New Row";
    ws ["D" + i].Value = "New Row";
    ws ["E" + i].Value = "New Row";
    wb.SaveAs("sample.xlsx");
}
'''
'''Add Row Last Position
'''anchor-add-row-in-last-position
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	Dim i As Integer = ws.Rows.Count() + 1
	ws ("A" & i).Value = "New Row"
	ws ("B" & i).Value = "New Row"
	ws ("C" & i).Value = "New Row"
	ws ("D" & i).Value = "New Row"
	ws ("E" & i).Value = "New Row"
	wb.SaveAs("sample.xlsx")
End Sub
VB   C#

Esto creará una nueva fila en la última posición con el valor Nueva Fila en la Hoja de Cálculo Excel sample.xlsx.

2.2. Añadir fila en primera posición

También es muy sencillo añadir una nueva fila en la primera posición de la hoja de cálculo Excel.

Para ello, en primer lugar moveremos todas las filas existentes a las filas siguientes, de forma que el primer hueco de fila esté disponible para que lo añadamos.

Veamos el ejemplo de cómo añadir una nueva fila en la primera posición de la Hoja de Cálculo Excel.

/**
Add Row First Position
anchor-add-row-in-first-position
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    int j = ws.Rows.Count() + 1;
    for (int i = 1; i <= ws.Rows.Count(); i++)
    {
        if (j == 0) 
        {
            ws.Rows [0].Value = "new row"; 
            break; 
        };
        ws ["A" + (j + 1)].Value = ws ["A" + j].Value; 
        ws ["B" + (j + 1)].Value = ws ["B" + j].Value;
        ws ["C" + (j + 1)].Value = ws ["C" + j].Value;
        ws ["D" + (j + 1)].Value = ws ["D" + j].Value;
        ws ["E" + (j + 1)].Value = ws ["E" + j].Value;
        j = j - 1;
    }
 wb.SaveAs("sample.xlsx"); 
}
/**
Add Row First Position
anchor-add-row-in-first-position
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    int j = ws.Rows.Count() + 1;
    for (int i = 1; i <= ws.Rows.Count(); i++)
    {
        if (j == 0) 
        {
            ws.Rows [0].Value = "new row"; 
            break; 
        };
        ws ["A" + (j + 1)].Value = ws ["A" + j].Value; 
        ws ["B" + (j + 1)].Value = ws ["B" + j].Value;
        ws ["C" + (j + 1)].Value = ws ["C" + j].Value;
        ws ["D" + (j + 1)].Value = ws ["D" + j].Value;
        ws ["E" + (j + 1)].Value = ws ["E" + j].Value;
        j = j - 1;
    }
 wb.SaveAs("sample.xlsx"); 
}
'''
'''Add Row First Position
'''anchor-add-row-in-first-position
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")
	Dim j As Integer = ws.Rows.Count() + 1
	For i As Integer = 1 To ws.Rows.Count()
		If j = 0 Then
			ws.Rows (0).Value = "new row"
			Exit For
		End If
		ws ("A" & (j + 1)).Value = ws ("A" & j).Value
		ws ("B" & (j + 1)).Value = ws ("B" & j).Value
		ws ("C" & (j + 1)).Value = ws ("C" & j).Value
		ws ("D" & (j + 1)).Value = ws ("D" & j).Value
		ws ("E" & (j + 1)).Value = ws ("E" & j).Value
		j = j - 1
	Next i
 wb.SaveAs("sample.xlsx")
End Sub
VB   C#

Comparemos los cambios realizados por el código anterior en nuestro documento sample.xlsx.

Antes de En

:---: :-----:

antes de después de

Aquí podemos ver que antes, el fichero sample.xlsx tenía 10 filas. Con la nueva fila añadida en la primera posición, 11 se convirtió en 11 filas.

2.3. Añadir fila en primera con cabecera de columna

En el caso de que tengamos la primera columna como nombre de cabecera, entonces podemos cambiar la condición de ruptura del bucle en la fila 0, y hacer que la nueva fila se añada en la posición 1.


3. Excel Añadir Columna en C#

También es para añadir una nueva columna en una Hoja de Cálculo Excel existente para nuestro proyecto C#.

Supongamos que tenemos 5 columnas en nuestra hoja de cálculo Excel llamada sample.xlsx, de la A a la E, y queremos añadir una nueva columna en la primera posición, A. Véase el ejemplo de código a continuación.

/**
Add Column 
anchor-excel-add-column-in-c-num
**/
using IronXL;
static void Main(string [] args)
{  
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    for (int i = 1; i <= ws.Rows.Count(); i++)
    {
        ws ["F" + i].Value = ws ["E" + i].Value;
        ws ["E" + i].Value = ws ["D" + i].Value;
        ws ["D" + i].Value = ws ["C" + i].Value;
        ws ["C" + i].Value = ws ["B" + i].Value;
        ws ["B" + i].Value = ws ["A" + i].Value;
        ws ["A" + i].Value = "New Column Added";
    }
    wb.SaveAs("sample.xlsx");
}
/**
Add Column 
anchor-excel-add-column-in-c-num
**/
using IronXL;
static void Main(string [] args)
{  
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");
    for (int i = 1; i <= ws.Rows.Count(); i++)
    {
        ws ["F" + i].Value = ws ["E" + i].Value;
        ws ["E" + i].Value = ws ["D" + i].Value;
        ws ["D" + i].Value = ws ["C" + i].Value;
        ws ["C" + i].Value = ws ["B" + i].Value;
        ws ["B" + i].Value = ws ["A" + i].Value;
        ws ["A" + i].Value = "New Column Added";
    }
    wb.SaveAs("sample.xlsx");
}
'''
'''Add Column 
'''anchor-excel-add-column-in-c-num
'''*
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 = 1 To ws.Rows.Count()
		ws ("F" & i).Value = ws ("E" & i).Value
		ws ("E" & i).Value = ws ("D" & i).Value
		ws ("D" & i).Value = ws ("C" & i).Value
		ws ("C" & i).Value = ws ("B" & i).Value
		ws ("B" & i).Value = ws ("A" & i).Value
		ws ("A" & i).Value = "New Column Added"
	Next i
	wb.SaveAs("sample.xlsx")
End Sub
VB   C#

Veamos los cambios realizados por el código anterior en sample.xlsx:

Antes de En

:---: :-----:

antes de después de

Podemos ver que se ha añadido una nueva columna en la primera posición A, y el resto se han desplazado hacia atrás, por lo que ahora tenemos un total de 6 columnas de la A a la F.


Acceso rápido a la biblioteca

Lea la documentación de IronXL

Lea la documentación de IronXL para obtener más funciones e información sobre cómo agregar filas, columnas y otras funcionalidades de Excel C#.

Lea la documentación de IronXL