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()
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)
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")
wbes el Libro de Trabajo (véase más arriba) y
ws` 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")
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"
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"
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")
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
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
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")
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")
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
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