C# Crear Excel

La creación de archivos de hoja de cálculo Excel mediante programación es una tarea común para los desarrolladores de C# que abordaremos hoy, incluido el aprendizaje sobre la creación de nuevos archivos Excel, la configuración de estilos de celda y la inserción de datos con programación C#. Con el código adecuado, puede personalizar y dar estilo a sus hojas para satisfacer sus necesidades. Vamos a ver paso a paso cómo crear libros de Excel en C# para tu proyecto .NET.


Primer paso

1. Crear Hojas de Cálculo Excel en C# con IronXL

Hoy vamos a utilizar IronXL, una biblioteca de C# para la funcionalidad de Excel que hace que trabajar con archivos de Excel sea mucho más eficiente. Está disponible gratuitamente para proyectos de desarrollo. Instálalo y sigue el tutorial.

Descargar a su proyecto o siga NuGet para instalar en Visual Studio.

Install-Package IronXL.Excel

Tutorial

2. C# Crear libro de Excel

Una vez que tenemos IronXL instalado en nuestro proyecto, podemos crear un Libro de Excel. Utilice el comando WorkBook.Create() función de IronXL.

WorkBook wb = WorkBook.Create();
WorkBook wb = WorkBook.Create();
Dim wb As WorkBook = WorkBook.Create()
VB   C#

Se creará un nuevo Libro de Excel wb. Podemos especificar el tipo de WorkBook XL ( .xlsx o xls. ) utilizando ExcelFileFormat como parámetro en el comando WorkBook.Create() funcionan de la siguiente manera:

/**
Create Csharp WorkBook 
anchor-c-num-create-excel-workbook
**/
//para crear archivos de extensión .xlsx
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
//para crear archivos de extensión .xls
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
/**
Create Csharp WorkBook 
anchor-c-num-create-excel-workbook
**/
//para crear archivos de extensión .xlsx
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
//para crear archivos de extensión .xls
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
'''
'''Create Csharp WorkBook 
'''anchor-c-num-create-excel-workbook
'''*
'para crear archivos de extensión .xlsx
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
'para crear archivos de extensión .xls
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
VB   C#

Ahora, podemos utilizar wb para crear WorkSheets.


3. C# Crear hoja de cálculo Excel

Para crear una Hoja de Trabajo, IronXL provee el comando Workbook.CreateWorkSheet() función. La función requiere un parámetro de cadena, en el que podemos especificar el nombre de la Hoja de Trabajo.

WorkSheet ws = wb.CreateWorkSheet("SheetName");
WorkSheet ws = wb.CreateWorkSheet("SheetName");
Dim ws As WorkSheet = wb.CreateWorkSheet("SheetName")
VB   C#

wbes el Libro de Trabajo (véase más arriba) yws` es una Hoja de Trabajo recién creada. Del mismo modo, podemos crear tantas Hojas de Trabajo como necesitemos. Por ejemplo:

/**
Create Csharp WorkSheets 
anchor-c-num-create-excel-workbook
**/
WorkSheet ws1 = wb.CreateWorkSheet("Sheet1");
WorkSheet ws2 = wb.CreateWorkSheet("Sheet2");
/**
Create Csharp WorkSheets 
anchor-c-num-create-excel-workbook
**/
WorkSheet ws1 = wb.CreateWorkSheet("Sheet1");
WorkSheet ws2 = wb.CreateWorkSheet("Sheet2");
'''
'''Create Csharp WorkSheets 
'''anchor-c-num-create-excel-workbook
'''*
Dim ws1 As WorkSheet = wb.CreateWorkSheet("Sheet1")
Dim ws2 As WorkSheet = wb.CreateWorkSheet("Sheet2")
VB   C#

4. Insertar datos de celda

Ahora, podemos insertar datos en la Hoja de Trabajo especificada. Utilizaremos un sistema de direccionamiento de celdas de Excel:

/**
Insert Data in Cell Address
anchor-insert-cell-data
**/
WorkSheet ["CellAddress"].Value = "Value";
/**
Insert Data in Cell Address
anchor-insert-cell-data
**/
WorkSheet ["CellAddress"].Value = "Value";
'''
'''Insert Data in Cell Address
'''anchor-insert-cell-data
'''*
WorkSheet ("CellAddress").Value = "Value"
VB   C#

5. Insertar datos en rango

Esta metodología también nos permite insertar valores en tantas celdas como necesitemos. Podemos utilizar Range para insertar datos en un rango de celdas.

/**
Insert Data in Range
anchor-insert-data-in-range
**/
WorkSheet ["From Cell Address : To Cell Address"].Value="value";
/**
Insert Data in Range
anchor-insert-data-in-range
**/
WorkSheet ["From Cell Address : To Cell Address"].Value="value";
'''
'''Insert Data in Range
'''anchor-insert-data-in-range
'''*
WorkSheet ("From Cell Address : To Cell Address").Value="value"
VB   C#

Esto insertará valor en todas las celdas que se encuentren en el rango especificado. Más información C# Excel Ranges para utilizarlo en su proyecto .NET.


6. Guardar archivo Excel

Después de insertar los datos, tenemos que guardar el archivo Excel en la ruta especificada.

/**
Save Excel File
anchor-save-excel-file
**/
WorkBook.SaveAs("Path + Filename");
/**
Save Excel File
anchor-save-excel-file
**/
WorkBook.SaveAs("Path + Filename");
'''
'''Save Excel File
'''anchor-save-excel-file
'''*
WorkBook.SaveAs("Path + Filename")
VB   C#

Con esta única línea de código, el Libro de Excel recién creado se guardará en la ubicación especificada. Profundice en C# Crear hoja de cálculo Excel ejemplos.


7. Crear, insertar datos y guardar Ejemplo

/**
Complete Example
anchor-create-insert-data-and-save-example
**/
using IronXL;
static void Main(string [] args)
{
    //Crear un nuevo cuaderno XL
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    //Crear hoja de trabajo del WorkBook especificado
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insertar datos por direccionamiento de celda
    ws ["A1"].Value = "Welcome";
    ws ["A2"].Value = "To";
    ws ["A3"].Value = "IronXL";
    //insertar datos por rango
    ws ["C3:C8"].Value = "Cell Value";
    //guardar el archivo en la ruta especificada
    wb.SaveAs("sample.xlsx");
    Console.WriteLine("successfully created.");
    Console.ReadKey();    
}
/**
Complete Example
anchor-create-insert-data-and-save-example
**/
using IronXL;
static void Main(string [] args)
{
    //Crear un nuevo cuaderno XL
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    //Crear hoja de trabajo del WorkBook especificado
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insertar datos por direccionamiento de celda
    ws ["A1"].Value = "Welcome";
    ws ["A2"].Value = "To";
    ws ["A3"].Value = "IronXL";
    //insertar datos por rango
    ws ["C3:C8"].Value = "Cell Value";
    //guardar el archivo en la ruta especificada
    wb.SaveAs("sample.xlsx");
    Console.WriteLine("successfully created.");
    Console.ReadKey();    
}
'''
'''Complete Example
'''anchor-create-insert-data-and-save-example
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'Crear un nuevo cuaderno XL
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
	'Crear hoja de trabajo del WorkBook especificado
	Dim ws As WorkSheet = wb.CreateWorkSheet("Sheet1")
	'insertar datos por direccionamiento de celda
	ws ("A1").Value = "Welcome"
	ws ("A2").Value = "To"
	ws ("A3").Value = "IronXL"
	'insertar datos por rango
	ws ("C3:C8").Value = "Cell Value"
	'guardar el archivo en la ruta especificada
	wb.SaveAs("sample.xlsx")
	Console.WriteLine("successfully created.")
	Console.ReadKey()
End Sub
VB   C#

Aquí hay una captura de pantalla de nuestro Excel WorkBook recién creado llamado sample.xlsx:


8. C# Excel de DataTable

En lo que de otro modo podría ser una complicada línea de código, IronXL proporciona una forma eficiente de convertir los datos de DataTable en archivos de Excel y guardarlos en una ubicación especificada. Cree un nuevo archivo Excel y rellénelo a partir de DataTable. Simple!

En primer lugar, vamos a crear una nueva DataTable con datos. A continuación, cree el archivo Excel, isnert y guarde.

/**
Excel from DataTable
anchor-c-num-excel-from-datatable
**/
using IronXL;
static void Main(string [] args)
{
    //crear nueva tabla de datos
    DataTable dt = new DataTable();
    dt.Columns.Add("id");
    dt.Columns.Add("name");
    dt.Columns.Add("phone");
    //rellenar datos en datatable
    for (int i = 0; i < 5; i++)
    {
        dt.Rows.Add("id" + i.ToString(), "name" + i.ToString(), "phone" + i.ToString());
    }
    //Crear un nuevo archivo XL
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    //Crear hoja de trabajo
    WorkSheet ws = wb.CreateWorkSheet("sheet1");
    //enviar datos a hoja de cálculo desde datatable
    int j = 1; 
    foreach (DataRow row in dt.Rows)
    {
        ws ["A" + j].Value = row ["id"].ToString();
        ws ["B" + j].Value = row ["name"].ToString();
        ws ["C" + j].Value = row ["phone"].ToString();
        j = j + 1;
    }
    //guardar el archivo
    wb.SaveAs("sample.xlsx");
}
/**
Excel from DataTable
anchor-c-num-excel-from-datatable
**/
using IronXL;
static void Main(string [] args)
{
    //crear nueva tabla de datos
    DataTable dt = new DataTable();
    dt.Columns.Add("id");
    dt.Columns.Add("name");
    dt.Columns.Add("phone");
    //rellenar datos en datatable
    for (int i = 0; i < 5; i++)
    {
        dt.Rows.Add("id" + i.ToString(), "name" + i.ToString(), "phone" + i.ToString());
    }
    //Crear un nuevo archivo XL
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    //Crear hoja de trabajo
    WorkSheet ws = wb.CreateWorkSheet("sheet1");
    //enviar datos a hoja de cálculo desde datatable
    int j = 1; 
    foreach (DataRow row in dt.Rows)
    {
        ws ["A" + j].Value = row ["id"].ToString();
        ws ["B" + j].Value = row ["name"].ToString();
        ws ["C" + j].Value = row ["phone"].ToString();
        j = j + 1;
    }
    //guardar el archivo
    wb.SaveAs("sample.xlsx");
}
'''
'''Excel from DataTable
'''anchor-c-num-excel-from-datatable
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'crear nueva tabla de datos
	Dim dt As New DataTable()
	dt.Columns.Add("id")
	dt.Columns.Add("name")
	dt.Columns.Add("phone")
	'rellenar datos en datatable
	For i As Integer = 0 To 4
		dt.Rows.Add("id" & i.ToString(), "name" & i.ToString(), "phone" & i.ToString())
	Next i
	'Crear un nuevo archivo XL
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
	'Crear hoja de trabajo
	Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1")
	'enviar datos a hoja de cálculo desde datatable
	Dim j As Integer = 1
	For Each row As DataRow In dt.Rows
		ws ("A" & j).Value = row ("id").ToString()
		ws ("B" & j).Value = row ("name").ToString()
		ws ("C" & j).Value = row ("phone").ToString()
		j = j + 1
	Next row
	'guardar el archivo
	wb.SaveAs("sample.xlsx")
End Sub
VB   C#

Este es nuestro resultado:

Ahora, vamos a mover que para establecer las propiedades de celda de XL WorkBook utilizando IronXL.


9. Establecer estilo de libro de Excel

Ahora, vamos a establecer las propiedades de la celda. A veces necesitamos establecer estilos mediante programación con una variedad de requisitos diferentes. IronXL nos permite muchas opciones para diferentes funciones para establecer fácilmente los estilos de celda.

Podemos utilizar el sistema de direccionamiento de celdas de los archivos Excel para especificar dónde debe aplicarse el estilo. Establezcamos algunas propiedades básicas de estilo que podemos utilizar a menudo en nuestra vida diaria.

//poner en negrita el texto de la celda especificada
WorkSheet ["CellAddress"].Style.Font.Bold =true;

//Poner en cursiva el texto de la celda especificada
WorkSheet ["CellAddress"].Style.Font.Italic =true;

//Tachar el texto de la celda especificada
WorkSheet ["CellAddress"].Style.Font.Strikeout = true;

//estilo de borde de una celda específica 
WorkSheet ["CellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;

//color del borde de una celda específica 
WorkSheet ["CellAddress"].Style.BottomBorder.SetColor("color value");
//poner en negrita el texto de la celda especificada
WorkSheet ["CellAddress"].Style.Font.Bold =true;

//Poner en cursiva el texto de la celda especificada
WorkSheet ["CellAddress"].Style.Font.Italic =true;

//Tachar el texto de la celda especificada
WorkSheet ["CellAddress"].Style.Font.Strikeout = true;

//estilo de borde de una celda específica 
WorkSheet ["CellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;

//color del borde de una celda específica 
WorkSheet ["CellAddress"].Style.BottomBorder.SetColor("color value");
'poner en negrita el texto de la celda especificada
WorkSheet ("CellAddress").Style.Font.Bold =True

'Poner en cursiva el texto de la celda especificada
WorkSheet ("CellAddress").Style.Font.Italic =True

'Tachar el texto de la celda especificada
WorkSheet ("CellAddress").Style.Font.Strikeout = True

'estilo de borde de una celda específica 
WorkSheet ("CellAddress").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted

'color del borde de una celda específica 
WorkSheet ("CellAddress").Style.BottomBorder.SetColor("color value")
VB   C#

IronXL también proporciona una manera de establecer todas las propiedades anteriores en un rango especificado. El estilo de celda se aplicará a todas las celdas que se encuentren dentro de ese rango, así:

//poner en negrita el texto de las celdas del rango especificado
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Bold =true;

//Poner en cursiva el texto de las celdas del rango especificado
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Italic =true;

//Tachar el texto de las celdas del rango especificado
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Strikeout = true;

//estilo de borde de las celdas del rango especificado 
WorkSheet ["FromCellAddress : ToCellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;

//color del borde de las celdas del rango especificado 
WorkSheet ["FromCellAddress : ToCellAddress"].Style.BottomBorder.SetColor("color value");
//poner en negrita el texto de las celdas del rango especificado
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Bold =true;

//Poner en cursiva el texto de las celdas del rango especificado
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Italic =true;

//Tachar el texto de las celdas del rango especificado
WorkSheet ["FromCellAddress : ToCellAddress"].Style.Font.Strikeout = true;

//estilo de borde de las celdas del rango especificado 
WorkSheet ["FromCellAddress : ToCellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;

//color del borde de las celdas del rango especificado 
WorkSheet ["FromCellAddress : ToCellAddress"].Style.BottomBorder.SetColor("color value");
'poner en negrita el texto de las celdas del rango especificado
WorkSheet ("FromCellAddress : ToCellAddress").Style.Font.Bold =True

'Poner en cursiva el texto de las celdas del rango especificado
WorkSheet ("FromCellAddress : ToCellAddress").Style.Font.Italic =True

'Tachar el texto de las celdas del rango especificado
WorkSheet ("FromCellAddress : ToCellAddress").Style.Font.Strikeout = True

'estilo de borde de las celdas del rango especificado 
WorkSheet ("FromCellAddress : ToCellAddress").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted

'color del borde de las celdas del rango especificado 
WorkSheet ("FromCellAddress : ToCellAddress").Style.BottomBorder.SetColor("color value")
VB   C#

Veamos un ejemplo completo que incluye la creación de un nuevo WorkBook XL y la aplicación de estilos de celda.

/**
Set Workbook Styling
anchor-set-excel-workbook-style
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    ws ["B2:G2"].Value = "Range1";          
    ws ["B4:G4"].Value = "Range2";
    //------estilos----------
    ws ["B2:D2"].Style.Font.Bold = true;
    ws ["E2:G2"].Style.Font.Italic = true;
    ws ["B4:D4"].Style.Font.Strikeout = true;
    ws ["E4:G4"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;
    ws ["E4:G4"].Style.BottomBorder.SetColor("#ff6600");
    wb.SaveAs("sample.xlsx");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
/**
Set Workbook Styling
anchor-set-excel-workbook-style
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    ws ["B2:G2"].Value = "Range1";          
    ws ["B4:G4"].Value = "Range2";
    //------estilos----------
    ws ["B2:D2"].Style.Font.Bold = true;
    ws ["E2:G2"].Style.Font.Italic = true;
    ws ["B4:D4"].Style.Font.Strikeout = true;
    ws ["E4:G4"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;
    ws ["E4:G4"].Style.BottomBorder.SetColor("#ff6600");
    wb.SaveAs("sample.xlsx");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
'''
'''Set Workbook Styling
'''anchor-set-excel-workbook-style
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
	Dim ws As WorkSheet = wb.CreateWorkSheet("Sheet1")
	ws ("B2:G2").Value = "Range1"
	ws ("B4:G4").Value = "Range2"
	'------estilos----------
	ws ("B2:D2").Style.Font.Bold = True
	ws ("E2:G2").Style.Font.Italic = True
	ws ("B4:D4").Style.Font.Strikeout = True
	ws ("E4:G4").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted
	ws ("E4:G4").Style.BottomBorder.SetColor("#ff6600")
	wb.SaveAs("sample.xlsx")
	Console.WriteLine("successfully created.")
	Console.ReadKey()
End Sub
VB   C#

Este es el aspecto de nuestro Excel WorkBook recién creado llamado sample.xlsx:

Hay mucho más que puede hacer con sus hojas de cálculo de Excel mediante programación. Para un tutorial más largo sobre C# abrir y escribir archivos Excel en .NET, siga los ejemplos de código y los pasos proporcionados.


Acceso rápido a tutoriales

C# Crear documentación Excel

Explore la documentación para crear libros de Excel, hojas de trabajo, aplicar estilos de celdas y mucho más en la Referencia de API para IronXL.

C# Crear documentación Excel