USO DE IRONXL

Generar archivos Excel en C#

Chaknith Bin
Chaknith Bin
6 de octubre, 2020
Actualizado 20 de diciembre, 2023
Compartir:

Las aplicaciones que desarrollamos se comunican constantemente con hojas de cálculo Excel para obtener datos de evaluación y resultados. Es realmente útil poder generar archivos Excel en C# mediante programación, lo que nos ahorra tiempo y esfuerzo en nuestro desarrollo. En este tutorial, aprenderemos a generar archivos de Excel en diferentes formatos, a establecer estilos de celda y a insertar datos mediante una programación eficiente en C#.


Primer paso

1. Generar archivos Excel con IronXL

Genere Archivos Excel utilizando la Librería IronXL Excel para C#, que provee un rango de funciones para generar y manipular datos en su proyecto. La biblioteca es gratuita para el desarrollo, con licencias disponibles cuando estés listo para implementar en producción. Para seguir este tutorial, puedes descargar IronXL para generar o acceder a él a través de Visual Studio y la galería de NuGet.

Install-Package IronXL.Excel

Tutorial

2. C# Descripción general del generador de archivos de Excel

En el desarrollo de aplicaciones empresariales, a menudo necesitamos generar diferentes tipos de archivos Excel mediante programación. Para ello, necesitamos la forma más fácil y rápida de generar diferentes tipos de archivos y guardarlos en la ubicación requerida de forma automática.

Después de instalar IronXL, podemos usar las funciones para generar diferentes tipos de archivos Excel:

  • Archivo de Excel con extensión .xlsx.
  • Archivo de Excel con extensión .xls.
  • Archivos de valores separados por comas (.csv).
  • Archivos de valores separados por tabulaciones (.tsv).
  • Archivos de Notación de Objetos de JavaScript (.json).
  • Archivos de Lenguaje de Marcado Extensible (.xml).

    Para generar cualquier tipo de archivo, primero necesitamos crear un WorkBook de Excel.

//generate New WorkBook
WorkBook wb = WorkBook.Create();
//generate New WorkBook
WorkBook wb = WorkBook.Create();
'generate New WorkBook
Dim wb As WorkBook = WorkBook.Create()
$vbLabelText   $csharpLabel

La línea de código anterior creará un nuevo WorkBook wb, y ahora crearemos un objeto WorkSheet.

//Generate New WorkSheet
WorkSheet ws = WorkBook.CreateWorkSheet("SheetName");
//Generate New WorkSheet
WorkSheet ws = WorkBook.CreateWorkSheet("SheetName");
'Generate New WorkSheet
Dim ws As WorkSheet = WorkBook.CreateWorkSheet("SheetName")
$vbLabelText   $csharpLabel

Esto creará un WorkSheet ws que podemos usar para insertar datos en archivos de Excel.


3. Generar archivo XLSX C#

Primero, seguimos los pasos anteriores para generar el WorkBook y el WorkSheet.

Luego, insertamos datos en él para crear nuestro archivo con extensión .xlsx. Para este propósito, IronXL proporciona un Sistema de Direccionamiento de Celdas que nos permite insertar datos en una dirección de celda específica de forma programática.

//Insert data by cell addressing
WorkSheet ["CellAddress"].Value = "MyValue";
//Insert data by cell addressing
WorkSheet ["CellAddress"].Value = "MyValue";
'Insert data by cell addressing
WorkSheet ("CellAddress").Value = "MyValue"
$vbLabelText   $csharpLabel

Insertará un nuevo valor que llamamos "MiValor" en una dirección de celda específica. Del mismo modo, podemos insertar datos en tantas celdas como necesitemos. Después de esto, guardaremos el archivo Excel en la ruta especificada de la siguiente manera:

//specify file path and name
WorkBook.SaveAs("Path + FileName.xlsx");
//specify file path and name
WorkBook.SaveAs("Path + FileName.xlsx");
'specify file path and name
WorkBook.SaveAs("Path + FileName.xlsx")
$vbLabelText   $csharpLabel

Esto creará un nuevo archivo de Excel con la extensión .xlsx en la ruta especificada. No olvides escribir la extensión .xlsx con el nombre del archivo al guardar.

Para profundizar más en cómo crear un WorkBook de Excel en un proyecto C#, consulte los ejemplos de código aquí.

/**
Generate XLSX File
anchor-generate-xlsx-file-c-num
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook of .xlsx Extension
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    //create workSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "Hello";
    ws ["A2"].Value = "World";
    ws ["C4"].Value = "IronXL";
    //save the file as .xlsx
    wb.SaveAs("sample.xlsx");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
/**
Generate XLSX File
anchor-generate-xlsx-file-c-num
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook of .xlsx Extension
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    //create workSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "Hello";
    ws ["A2"].Value = "World";
    ws ["C4"].Value = "IronXL";
    //save the file as .xlsx
    wb.SaveAs("sample.xlsx");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
'''
'''Generate XLSX File
'''anchor-generate-xlsx-file-c-num
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'create new WorkBook of .xlsx Extension
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
	'create workSheet
	Dim ws As WorkSheet = wb.CreateWorkSheet("Sheet1")
	'insert data in the cells of WorkSheet
	ws ("A1").Value = "Hello"
	ws ("A2").Value = "World"
	ws ("C4").Value = "IronXL"
	'save the file as .xlsx
	wb.SaveAs("sample.xlsx")
	Console.WriteLine("successfully created.")
	Console.ReadKey()
End Sub
$vbLabelText   $csharpLabel

Puedes ver la captura de pantalla del nuevo archivo de Excel sample.xlsx aquí:

Generar archivos Excel en C#, Figura 1: El resultado del valor modificado en la celda C4

El resultado del valor modificado en la celda C4


4. Generar archivo XLS C#

También es posible generar archivos .xls usando IronXL. Para este propósito, utilizaremos la función WorkBook.Create() de la siguiente manera:

WorkBook.Create(ExcelFileFormat.XLS)
WorkBook.Create(ExcelFileFormat.XLS)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'WorkBook.Create(ExcelFileFormat.XLS)
$vbLabelText   $csharpLabel

Esto creará un nuevo archivo de Excel con la extensión .xls. Ten en cuenta que al asignar un nombre a un archivo de Excel, debes escribir la extensión .xls junto con el nombre del archivo, como esto:

WorkBook.SaveAs("Path + FileName.xls");
WorkBook.SaveAs("Path + FileName.xls");
WorkBook.SaveAs("Path + FileName.xls")
$vbLabelText   $csharpLabel

Ahora, veamos un ejemplo de cómo generar un archivo Excel con la extensión .xls:

/**
Generate XLS File
anchor-generate-xls-file-c-num
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook of .xls Extension 
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    //create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "Hello";
    ws ["A2"].Value = "World";
    //save the file as .xls
    wb.SaveAs("sample.xls");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
/**
Generate XLS File
anchor-generate-xls-file-c-num
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook of .xls Extension 
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    //create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "Hello";
    ws ["A2"].Value = "World";
    //save the file as .xls
    wb.SaveAs("sample.xls");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
'''
'''Generate XLS File
'''anchor-generate-xls-file-c-num
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'create new WorkBook of .xls Extension 
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	'create WorkSheet
	Dim ws As WorkSheet = wb.CreateWorkSheet("Sheet1")
	'insert data in the cells of WorkSheet
	ws ("A1").Value = "Hello"
	ws ("A2").Value = "World"
	'save the file as .xls
	wb.SaveAs("sample.xls")
	Console.WriteLine("successfully created.")
	Console.ReadKey()
End Sub
$vbLabelText   $csharpLabel

5. Generar fichero CSV C#

Los archivos de Valor Separado por Comas (.csv) también juegan un papel muy importante en el mantenimiento de datos en diferentes tipos de organizaciones. Por lo tanto, también necesitamos aprender a generar archivos .csv e insertar datos en ellos de forma programática.

Podemos usar el mismo proceso que arriba, pero necesitamos especificar la extensión .csv con el nombre del archivo al guardar. Veamos un ejemplo de cómo crear archivos .csv en nuestro proyecto de C#:

/**
Generate CSV File
anchor-generate-csv-file-c-num
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook  
    WorkBook wb = WorkBook.Create();
    //create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "Hello";
    ws ["A2"].Value = "World";
    //save the file as .csv
    wb.SaveAsCsv("sample.csv");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
/**
Generate CSV File
anchor-generate-csv-file-c-num
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook  
    WorkBook wb = WorkBook.Create();
    //create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "Hello";
    ws ["A2"].Value = "World";
    //save the file as .csv
    wb.SaveAsCsv("sample.csv");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
'''
'''Generate CSV File
'''anchor-generate-csv-file-c-num
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'create new WorkBook  
	Dim wb As WorkBook = WorkBook.Create()
	'create WorkSheet
	Dim ws As WorkSheet = wb.CreateWorkSheet("Sheet1")
	'insert data in the cells of WorkSheet
	ws ("A1").Value = "Hello"
	ws ("A2").Value = "World"
	'save the file as .csv
	wb.SaveAsCsv("sample.csv")
	Console.WriteLine("successfully created.")
	Console.ReadKey()
End Sub
$vbLabelText   $csharpLabel

Para poder interactuar más con archivos CSV, puedes seguir este tutorial para leer un archivo .csv.


6. Generar fichero TSV C#

A veces necesitamos generar archivos de valores separados por tabulaciones (.tsv) e insertar datos de forma programada.

Usando IronXL, también podemos generar archivos con extensión .tsv, insertar datos en ellos y luego guardarlos en la ubicación requerida.

Veamos el ejemplo de cómo generar un archivo con extensión .tsv:

/**
Generate TSV File
anchor-generate-tsv-file-c-num
**/
using IronXL;
static void Main(string [] args)
{ 
    //create new WorkBook  
    WorkBook wb = WorkBook.Create();
    //create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "Hello";
    ws ["A2"].Value = "World";
    //save the file as .tsv
    wb.SaveAs("sample.tsv");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
/**
Generate TSV File
anchor-generate-tsv-file-c-num
**/
using IronXL;
static void Main(string [] args)
{ 
    //create new WorkBook  
    WorkBook wb = WorkBook.Create();
    //create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "Hello";
    ws ["A2"].Value = "World";
    //save the file as .tsv
    wb.SaveAs("sample.tsv");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
'''
'''Generate TSV File
'''anchor-generate-tsv-file-c-num
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'create new WorkBook  
	Dim wb As WorkBook = WorkBook.Create()
	'create WorkSheet
	Dim ws As WorkSheet = wb.CreateWorkSheet("Sheet1")
	'insert data in the cells of WorkSheet
	ws ("A1").Value = "Hello"
	ws ("A2").Value = "World"
	'save the file as .tsv
	wb.SaveAs("sample.tsv")
	Console.WriteLine("successfully created.")
	Console.ReadKey()
End Sub
$vbLabelText   $csharpLabel

7. Generar fichero JSON C#

Podemos decir con comodidad que los archivos de JavaScript Object Notation (.json) son los archivos de datos más comunes y se utilizan en casi todas las empresas de desarrollo de software. Por lo tanto, a menudo necesitamos guardar los datos en formato JSON. Para ello, necesitamos el método más sencillo para generar archivos en formato JSON e insertar los datos en ellos.

En tales condiciones, IronXL es la mejor opción mediante la cual podemos generar fácilmente estos archivos para C#. Veamos el ejemplo.

/**
Generate JSON File
anchor-generate-json-file-c-num
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook 
    WorkBook wb = WorkBook.Create();
    //create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "1";
    ws ["A2"].Value = "john";
    ws ["B1"].Value = "2";
    ws ["B2"].Value = "alex";
    ws ["C1"].Value = "3";
    ws ["C2"].Value = "stokes";
    //save the file as .json
    wb.SaveAsJson("sample.json");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
/**
Generate JSON File
anchor-generate-json-file-c-num
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook 
    WorkBook wb = WorkBook.Create();
    //create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "1";
    ws ["A2"].Value = "john";
    ws ["B1"].Value = "2";
    ws ["B2"].Value = "alex";
    ws ["C1"].Value = "3";
    ws ["C2"].Value = "stokes";
    //save the file as .json
    wb.SaveAsJson("sample.json");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
'''
'''Generate JSON File
'''anchor-generate-json-file-c-num
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'create new WorkBook 
	Dim wb As WorkBook = WorkBook.Create()
	'create WorkSheet
	Dim ws As WorkSheet = wb.CreateWorkSheet("Sheet1")
	'insert data in the cells of WorkSheet
	ws ("A1").Value = "1"
	ws ("A2").Value = "john"
	ws ("B1").Value = "2"
	ws ("B2").Value = "alex"
	ws ("C1").Value = "3"
	ws ("C2").Value = "stokes"
	'save the file as .json
	wb.SaveAsJson("sample.json")
	Console.WriteLine("successfully created.")
	Console.ReadKey()
End Sub
$vbLabelText   $csharpLabel

Y revisa la captura de pantalla del archivo JSON recién creado sample.json :

Generar archivos de Excel en C#, Figura 2: Navegando al Administrador de paquetes NuGet en Visual Studio

Navegar al Administrador de Paquetes NuGet en Visual Studio


8. Generar fichero XML C#

En el desarrollo de aplicaciones empresariales, a menudo necesitamos guardar los datos en el formato de archivo Extensible Markup Language (.xml). Esto es importante porque los datos de archivos .xml son legibles tanto por humanos como por máquinas.

A través de los siguientes ejemplos, aprenderemos cómo generar archivos .xml para C# e insertar datos mediante programación.

/**
Generate XML File
anchor-generate-xml-file-c-num
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook 
    WorkBook wb = WorkBook.Create();
    //create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "Hello";
    ws ["A2"].Value = "World";
    //save the file as .json
    wb.SaveAsXml("sample.xml");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
/**
Generate XML File
anchor-generate-xml-file-c-num
**/
using IronXL;
static void Main(string [] args)
{
    //create new WorkBook 
    WorkBook wb = WorkBook.Create();
    //create WorkSheet
    WorkSheet ws = wb.CreateWorkSheet("Sheet1");
    //insert data in the cells of WorkSheet
    ws ["A1"].Value = "Hello";
    ws ["A2"].Value = "World";
    //save the file as .json
    wb.SaveAsXml("sample.xml");
    Console.WriteLine("successfully created.");
    Console.ReadKey();
}
'''
'''Generate XML File
'''anchor-generate-xml-file-c-num
'''*
Imports IronXL
Shared Sub Main(ByVal args() As String)
	'create new WorkBook 
	Dim wb As WorkBook = WorkBook.Create()
	'create WorkSheet
	Dim ws As WorkSheet = wb.CreateWorkSheet("Sheet1")
	'insert data in the cells of WorkSheet
	ws ("A1").Value = "Hello"
	ws ("A2").Value = "World"
	'save the file as .json
	wb.SaveAsXml("sample.xml")
	Console.WriteLine("successfully created.")
	Console.ReadKey()
End Sub
$vbLabelText   $csharpLabel

Puedes leer más sobre convertir hojas de cálculo de Excel y archivos programáticamente para su uso en proyectos de C#.

La biblioteca IronXL también ofrece una amplia gama de características para interactuar con archivos Excel, como formato de datos de celdas, fusión de celdas, inserción de funciones matemáticas, e incluso la gestión de gráficos.


Acceso rápido a tutoriales

Documentación del generador IronXL

Lea la documentación completa sobre cómo IronXL genera archivos en todos los formatos de Excel necesarios para su proyecto C#.

Documentación del generador IronXL
Documentation related to Acceso rápido a tutoriales
Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
< ANTERIOR
Crear un archivo CSV con C#
SIGUIENTE >
Trabajar con Excel en .NET Core