Crear un archivo XLSX en C#

Con tanta automatización en los negocios, frecuentemente necesitamos trabajar con Hojas de Cálculo Excel en aplicaciones .NET, incluyendo la creación de hojas de cálculo y la inserción de datos mediante programación. En el siguiente tutorial, aprenderemos a crear la hoja de cálculo Excel en diferentes formatos (.xls, .xlsx, .csv y .tsv.), establecer estilos de celda e insertar datos mediante programación en C#.


Cómo crear un archivo XLXL en C#

  1. Instale la biblioteca de Excel para crear archivos XLSX.
  2. Utilice el objeto Workbook para crear un archivo Excel.
  3. Elija una Hoja de trabajo por defecto.
  4. Añade datos a la Hoja de trabajo por defecto.
  5. Guarde el archivo Excel en el disco.

    Primer paso

1. Descargar IronXL DLL

IronXL proporciona el enfoque más sencillo para crear Excel (.xlsx) en proyectos C#. Descargar la DLL o Instalación NuGet y utilizarlo gratuitamente para el desarrollo.

Install-Package IronXL.Excel

Tutorial

2. Crear un libro de trabajo

Con este programa, podemos insertar datos y también establecer las propiedades de las celdas, como los estilos de fuente o los bordes.

2.1 Crear archivo .XLSX

Cree un Libro de Trabajo utilizando este código para crear un nuevo archivo Excel, que, por defecto, tiene la extensión .xlsx.

/**
Create XLSX File
anchor-create-a-workbook
**/
WorkBook wb = WorkBook.Create();
/**
Create XLSX File
anchor-create-a-workbook
**/
WorkBook wb = WorkBook.Create();
'''
'''Create XLSX File
'''anchor-create-a-workbook
'''*
Dim wb As WorkBook = WorkBook.Create()
VB   C#

2.2 Crear archivo .XLS

Si desea crear un archivo de extensión .xls, utilice:

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

3. Crear hoja de trabajo Excel

Después de crear un Libro de Trabajo en el formato de archivo de su elección, cree una Hoja de Trabajo Excel. Este código creará una nueva Hoja de Trabajo ws1 con el nombre sheet1 en el WorkBook wb.

WorkSheet ws1 = wb.CreateWorkSheet("sheet1");
WorkSheet ws1 = wb.CreateWorkSheet("sheet1");
Dim ws1 As WorkSheet = wb.CreateWorkSheet("sheet1")
VB   C#

3.1 Crear varias hojas de trabajo

Se pueden crear varias hojas de trabajo del mismo modo:

/**
Create WorkSheets
anchor-create-an-excel-worksheet
**/
WorkSheet ws2 = wb.CreateWorkSheet("sheet2");
WorkSheet ws3 = wb.CreateWorkSheet("sheet3");
/**
Create WorkSheets
anchor-create-an-excel-worksheet
**/
WorkSheet ws2 = wb.CreateWorkSheet("sheet2");
WorkSheet ws3 = wb.CreateWorkSheet("sheet3");
'''
'''Create WorkSheets
'''anchor-create-an-excel-worksheet
'''*
Dim ws2 As WorkSheet = wb.CreateWorkSheet("sheet2")
Dim ws3 As WorkSheet = wb.CreateWorkSheet("sheet3")
VB   C#

4. Insertar datos en hojas de trabajo

Ahora podemos insertar datos fácilmente en las celdas de la Hoja de Trabajo.

 worksheet ["CellAddress"].Value = "MyValue";
 worksheet ["CellAddress"].Value = "MyValue";
worksheet ("CellAddress").Value = "MyValue"
VB   C#

4.1 Insertar datos en una hoja de trabajo específica

Por ejemplo, los datos de la hoja de cálculo ws1 pueden insertarse específicamente. El siguiente código escribirá Hola Mundo en la celda A1 de la Hoja de Trabajo ws1.

/**
Insert WorkSheet Data
anchor-insert-data-into-worksheets
**/
ws1 ["A1"].Value = "Hello World";
/**
Insert WorkSheet Data
anchor-insert-data-into-worksheets
**/
ws1 ["A1"].Value = "Hello World";
'''
'''Insert WorkSheet Data
'''anchor-insert-data-into-worksheets
'''*
ws1 ("A1").Value = "Hello World"
VB   C#

4.2 Insertar Datos en Varias Celdas

También es posible escribir datos en muchas celdas utilizando la función rango. El siguiente código escribirá NuevoValor de la celda A3 a A8 en la Hoja de Trabajo ws1.

ws1 ["A3:A8"].Value = "NewValue";
ws1 ["A3:A8"].Value = "NewValue";
ws1 ("A3:A8").Value = "NewValue"
VB   C#

5. Realizar un proyecto de muestra

Crearemos un nuevo fichero Excel Muestra.xlsx e insertaremos datos en él.

/**
Sample Project
anchor-make-a-sample-project
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Create();  
    WorkSheet ws1 = wb.CreateWorkSheet("sheet1");                    
    ws1 ["A1"].Value = "Hello";           
    ws1 ["A2"].Value = "World";
    ws1 ["B1:B8"].Value = "RangeValue";
    wb.SaveAs("Sample.xlsx");
}
/**
Sample Project
anchor-make-a-sample-project
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Create();  
    WorkSheet ws1 = wb.CreateWorkSheet("sheet1");                    
    ws1 ["A1"].Value = "Hello";           
    ws1 ["A2"].Value = "World";
    ws1 ["B1:B8"].Value = "RangeValue";
    wb.SaveAs("Sample.xlsx");
}
'''
'''Sample Project
'''anchor-make-a-sample-project
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Create()
	Dim ws1 As WorkSheet = wb.CreateWorkSheet("sheet1")
	ws1 ("A1").Value = "Hello"
	ws1 ("A2").Value = "World"
	ws1 ("B1:B8").Value = "RangeValue"
	wb.SaveAs("Sample.xlsx")
End Sub
VB   C#

Nota: Por defecto, el nuevo fichero Excel se creará en la carpeta bin>Debug del proyecto. Si queremos crear un nuevo archivo en una ruta personalizada, utilice:

wb.SaveAs(@"E:\IronXL\Muestra.xlsx");

He aquí una captura de pantalla de nuestro archivo Excel recién creado sample.xlsx:

Queda claro lo simple que es crear archivos Excel usando IronXL en su Aplicación C#.


6. Establecer ExcelMetadata para archivos Excel

IronXL también proporciona la función de establecer metadatos para archivos Excel.

/**
Set Metadata
anchor-set-metadata-for-excel-files
**/
WorkBook wb = WorkBook.Create();
wb.Metadata.Author = "AuthorName";
wb.Metadata.Title="TitleValue";
/**
Set Metadata
anchor-set-metadata-for-excel-files
**/
WorkBook wb = WorkBook.Create();
wb.Metadata.Author = "AuthorName";
wb.Metadata.Title="TitleValue";
'''
'''Set Metadata
'''anchor-set-metadata-for-excel-files
'''*
Dim wb As WorkBook = WorkBook.Create()
wb.Metadata.Author = "AuthorName"
wb.Metadata.Title="TitleValue"
VB   C#

7. Establecer estilo de celda

Es muy fácil establecer el estilo de celda de Excel WorkSheet en su aplicación C#. IronXL proporciona todas las propiedades de estilización celular necesarias.

7.1. Establecer estilo de fuente

El estilo de fuente puede ajustarse como sigue:

/**
Set Font Style
anchor-set-font-style
**/
WorkSheet ["CellAddress"].Style.Font.Bold =true;
WorkSheet ["CellAddress"].Style.Font.Italic =true;
/**
Set Font Style
anchor-set-font-style
**/
WorkSheet ["CellAddress"].Style.Font.Bold =true;
WorkSheet ["CellAddress"].Style.Font.Italic =true;
'''
'''Set Font Style
'''anchor-set-font-style
'''*
WorkSheet ("CellAddress").Style.Font.Bold =True
WorkSheet ("CellAddress").Style.Font.Italic =True
VB   C#

7.2. Añadir Strikeout

La tachadura a cualquier valor de celda se puede hacer de la siguiente manera:

/**
Add Strikeout
anchor-add-strikeout
**/
WorkSheet ["CellAddress"].Style.Font.Strikeout = true;
/**
Add Strikeout
anchor-add-strikeout
**/
WorkSheet ["CellAddress"].Style.Font.Strikeout = true;
'''
'''Add Strikeout
'''anchor-add-strikeout
'''*
WorkSheet ("CellAddress").Style.Font.Strikeout = True
VB   C#

7.3. Establecer estilo de borde

La estilización de los bordes puede realizarse utilizando el siguiente código:

/**
Set Border Style
anchor-set-border-style
**/
WorkSheet ["CellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;
/**
Set Border Style
anchor-set-border-style
**/
WorkSheet ["CellAddress"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;
'''
'''Set Border Style
'''anchor-set-border-style
'''*
WorkSheet ("CellAddress").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted
VB   C#

8. Aplicar estilización de celdas Proyecto de ejemplo

Veamos cómo establecer múltiples estilos de celda y juntarlo todo utilizando el proyecto de ejemplo que se muestra a continuación.

/**
Sample Cell Styling Set
anchor-apply-cell-styling-sample-project
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Create();                     
    WorkSheet ws = wb.CreateWorkSheet("sheet1");

    ws ["A1"].Value = "MyVal";
    ws ["B2"].Value = "Hello World";

    ws ["A1"].Style.Font.Strikeout = true;

    ws ["B2"].Style.Font.Bold =true;
    ws ["B2"].Style.Font.Italic =true;

    ws ["C3"].Style.TopBorder.Type = IronXL.Styles.BorderType.Double;        
    ws ["C3"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;
    ws ["C3"].Style.LeftBorder.Type = IronXL.Styles.BorderType.Thick;
    ws ["C3"].Style.RightBorder.Type = IronXL.Styles.BorderType.SlantedDashDot;
    ws ["C3"].Style.BottomBorder.SetColor("#ff6600");
    ws ["C3"].Style.TopBorder.SetColor("#ff6600");
    wb.SaveAs("Sample.xlsx");
}
/**
Sample Cell Styling Set
anchor-apply-cell-styling-sample-project
**/
using IronXL;
static void Main(string [] args)
{
    WorkBook wb = WorkBook.Create();                     
    WorkSheet ws = wb.CreateWorkSheet("sheet1");

    ws ["A1"].Value = "MyVal";
    ws ["B2"].Value = "Hello World";

    ws ["A1"].Style.Font.Strikeout = true;

    ws ["B2"].Style.Font.Bold =true;
    ws ["B2"].Style.Font.Italic =true;

    ws ["C3"].Style.TopBorder.Type = IronXL.Styles.BorderType.Double;        
    ws ["C3"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted;
    ws ["C3"].Style.LeftBorder.Type = IronXL.Styles.BorderType.Thick;
    ws ["C3"].Style.RightBorder.Type = IronXL.Styles.BorderType.SlantedDashDot;
    ws ["C3"].Style.BottomBorder.SetColor("#ff6600");
    ws ["C3"].Style.TopBorder.SetColor("#ff6600");
    wb.SaveAs("Sample.xlsx");
}
'''
'''Sample Cell Styling Set
'''anchor-apply-cell-styling-sample-project
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	Dim wb As WorkBook = WorkBook.Create()
	Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1")

	ws ("A1").Value = "MyVal"
	ws ("B2").Value = "Hello World"

	ws ("A1").Style.Font.Strikeout = True

	ws ("B2").Style.Font.Bold =True
	ws ("B2").Style.Font.Italic =True

	ws ("C3").Style.TopBorder.Type = IronXL.Styles.BorderType.Double
	ws ("C3").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dotted
	ws ("C3").Style.LeftBorder.Type = IronXL.Styles.BorderType.Thick
	ws ("C3").Style.RightBorder.Type = IronXL.Styles.BorderType.SlantedDashDot
	ws ("C3").Style.BottomBorder.SetColor("#ff6600")
	ws ("C3").Style.TopBorder.SetColor("#ff6600")
	wb.SaveAs("Sample.xlsx")
End Sub
VB   C#

Y aquí está una captura de pantalla de nuestro archivo Excel recién creado sample.xlsx.


9. Próximos pasos y tutorial de Excel

Si desea profundizar más y leer una guía paso a paso para la creación de Excel .NET, consulte la página Crear archivos Excel usando C# tutorial.


Acceso rápido a tutoriales

Sumérjase en la referencia de la API

Lea la Documentación de IronXL, con explicaciones de todos los espacios de nombres, conjuntos de características, clases, métodos, campos y enums de IronXL.

Ver la referencia de la API