Saltar al pie de página
USANDO IRONXL

Generar archivos de Excel en C#

Las aplicaciones que desarrollamos están constantemente comunicándose con hojas de cálculo de Excel para obtener datos para su evaluación y resultados. Es muy útil poder generar archivos de Excel en C# programáticamente, ahorrándonos tiempo y esfuerzo en nuestro desarrollo. En este tutorial, aprenderemos sobre la generación de archivos de Excel en diferentes formatos, estableciendo estilos de celdas e insertando datos utilizando programación eficiente en C#.

Generador de archivos de Excel en C#

  • Generar archivos de Excel con IronXL
  • Generar archivos Excel C# en .XLSX y .XLS
  • Generar archivos CSV
  • Genere archivos JSON, XML, TSV y más en proyectos de C#
How To Work related to Generar archivos de Excel en C#

Paso 1

1. Generar archivos de Excel con IronXL

Generar archivos Excel usando la Librería IronXL Excel para C#, proporcionando una gama de funciones para generar y manipular datos en tu proyecto. La biblioteca es gratuita para desarrollo, con licencias disponibles cuando estés listo para lanzar en vivo. Para seguir este tutorial, puedes descargar IronXL para generar o acceder a él a través de Visual Studio y NuGet gallery.


dotnet add package IronXL.Excel

Tutorial de cómo hacerlo

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

En el desarrollo de aplicaciones empresariales, a menudo necesitamos generar diferentes tipos de archivos de Excel programáticamente. Para este propósito, necesitamos la forma más fácil y rápida de generar diferentes tipos de archivos y guardarlos automáticamente en la ubicación requerida.

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 Valor Separado por Comas (.csv).
  • Archivos de Valor Separado por Tab (.tsv).
  • Archivos de Notación de Objeto JavaScript (.json).
  • Archivos de Lenguaje de Marcado Extensible (.xml).

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

// Generate a new WorkBook
WorkBook wb = WorkBook.Create();
// Generate a new WorkBook
WorkBook wb = WorkBook.Create();
' Generate a new WorkBook
Dim wb As WorkBook = WorkBook.Create()
$vbLabelText   $csharpLabel

La línea de código anterior creará un nuevo WorkBook llamado wb. Ahora crearemos un objeto WorkSheet.

// Generate a new WorkSheet
WorkSheet ws = wb.CreateWorkSheet("SheetName");
// Generate a new WorkSheet
WorkSheet ws = wb.CreateWorkSheet("SheetName");
' Generate a new WorkSheet
Dim ws As WorkSheet = wb.CreateWorkSheet("SheetName")
$vbLabelText   $csharpLabel

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


3. Generar archivo XLSX en 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 programáticamente.

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

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

// Specify file path and name
wb.SaveAs("Path + FileName.xlsx");
// Specify file path and name
wb.SaveAs("Path + FileName.xlsx");
' Specify file path and name
wb.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 dar un paso más en cómo crear un WorkBook de Excel en un proyecto C#, consulta los ejemplos de código aquí.

/**
 * Generate XLSX File
 */
using System;
using IronXL;

class Program
{
    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
 */
using System;
using IronXL;

class Program
{
    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
''' 
Imports System
Imports IronXL

Friend Class Program
	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
End Class
$vbLabelText   $csharpLabel

Puedes ver una captura de pantalla del nuevo archivo Excel creado 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 utilizando IronXL. Para este propósito, utilizaremos la función WorkBook.Create() de la siguiente manera:

// Create a workbook with XLS format
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
// Create a workbook with XLS format
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
' Create a workbook with XLS format
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
$vbLabelText   $csharpLabel

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

// Save the file as .xls
wb.SaveAs("Path + FileName.xls");
// Save the file as .xls
wb.SaveAs("Path + FileName.xls");
' Save the file as .xls
wb.SaveAs("Path + FileName.xls")
$vbLabelText   $csharpLabel

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

/**
 * Generate XLS File
 */
using System;
using IronXL;

class Program
{
    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
 */
using System;
using IronXL;

class Program
{
    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
''' 
Imports System
Imports IronXL

Friend Class Program
	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
End Class
$vbLabelText   $csharpLabel

5. Generar archivo 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. Entonces, también necesitamos aprender cómo generar archivos .csv e insertar datos en ellos programáticamente.

Podemos usar el mismo proceso anterior, 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 C#:

/**
 * Generate CSV File
 */
using System;
using IronXL;

class Program
{
    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
 */
using System;
using IronXL;

class Program
{
    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
''' 
Imports System
Imports IronXL

Friend Class Program
	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
End Class
$vbLabelText   $csharpLabel

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


6. Generar archivo TSV C

A veces necesitamos generar archivos de Valor Separado por Tab (.tsv) e insertar datos programáticamente.

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 archivos con extensión .tsv:

/**
 * Generate TSV File
 */
using System;
using IronXL;

class Program
{
    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.SaveAsTsv("sample.tsv");

        Console.WriteLine("Successfully created.");
        Console.ReadKey();
    }
}
/**
 * Generate TSV File
 */
using System;
using IronXL;

class Program
{
    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.SaveAsTsv("sample.tsv");

        Console.WriteLine("Successfully created.");
        Console.ReadKey();
    }
}
'''
''' * Generate TSV File
''' 
Imports System
Imports IronXL

Friend Class Program
	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.SaveAsTsv("sample.tsv")

		Console.WriteLine("Successfully created.")
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel

7. Generar archivo JSON C

Podemos decir cómodamente que los archivos de Notación de Objeto JavaScript (.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 esto, necesitamos el método más simple 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
 */
using System;
using IronXL;

class Program
{
    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
 */
using System;
using IronXL;

class Program
{
    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
''' 
Imports System
Imports IronXL

Friend Class Program
	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
End Class
$vbLabelText   $csharpLabel

Y revisa la captura de pantalla del nuevo archivo JSON creado sample.json :

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


8. Generar archivo XML C

En el desarrollo de aplicaciones empresariales, a menudo necesitamos guardar los datos en el formato de archivo del Lenguaje de Marcado Extensible (.xml). Esto es importante porque los datos del archivo .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 programáticamente.

/**
 * Generate XML File
 */
using System;
using IronXL;

class Program
{
    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 .xml
        wb.SaveAsXml("sample.xml");

        Console.WriteLine("Successfully created.");
        Console.ReadKey();
    }
}
/**
 * Generate XML File
 */
using System;
using IronXL;

class Program
{
    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 .xml
        wb.SaveAsXml("sample.xml");

        Console.WriteLine("Successfully created.");
        Console.ReadKey();
    }
}
'''
''' * Generate XML File
''' 
Imports System
Imports IronXL

Friend Class Program
	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 .xml
		wb.SaveAsXml("sample.xml")

		Console.WriteLine("Successfully created.")
		Console.ReadKey()
	End Sub
End Class
$vbLabelText   $csharpLabel

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

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


Tutorial de acceso rápido

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 Tutorial de acceso rápido

Preguntas Frecuentes

¿Cómo puedo generar un archivo de Excel en C#?

Puedes generar un archivo de Excel en C# usando IronXL. Comienza creando un WorkBook y Hoja de Trabajo, inserta tus datos usando el Sistema de Direccionamiento de Celdas y guarda el archivo con el formato deseado usando los métodos de IronXL.

¿Cuáles son los pasos para manipular archivos de Excel programáticamente en C#?

Para manipular archivos de Excel programáticamente en C#, instala IronXL mediante el gestor de paquetes NuGet, crea un WorkBook y Hoja de Trabajo, usa el código C# para insertar y manipular datos, y guarda los cambios en el formato de archivo que prefieras.

¿Cómo puedo guardar un archivo de Excel como JSON usando C#?

Usando IronXL, puedes guardar un archivo de Excel como JSON creando un WorkBook y Hoja de Trabajo, agregando los datos necesarios y empleando el método SaveAsJson para exportar el archivo en formato JSON.

¿Puedo convertir un archivo de Excel a CSV usando C#?

Sí, IronXL te permite convertir un archivo de Excel a CSV en C#. Necesitas cargar el archivo de Excel en un WorkBook, procesarlo según sea necesario y usar el método SaveAsCsv para exportarlo.

¿A qué formatos puedo exportar datos de Excel usando C#?

Usando IronXL, puedes exportar datos de Excel a varios formatos como XLSX, CSV, TSV, JSON y XML. Esta versatilidad es beneficiosa para diferentes necesidades de manejo de datos en proyectos de C#.

¿Cómo instalo IronXL para operaciones de Excel en C#?

Para instalar IronXL para operaciones de Excel en C#, usa el gestor de paquetes NuGet en Visual Studio con el comando dotnet add package IronXL.Excel.

¿Es adecuado IronXL para aplicaciones empresariales que involucran archivos de Excel?

IronXL es altamente adecuado para aplicaciones empresariales ya que simplifica el proceso de generar y manipular archivos de Excel programáticamente, haciéndolo eficiente para automatizar tareas de procesamiento de datos.

¿Puedo usar IronXL gratis durante el desarrollo?

IronXL es gratis para usar con fines de desarrollo. Sin embargo, se requiere una licencia cuando estés listo para desplegar o usar la biblioteca en un entorno de producción.

¿Cómo puedo estilizar celdas al generar archivos de Excel en C#?

Al usar IronXL, puedes estilizar celdas en archivos de Excel generados configurando propiedades como tamaño de fuente, color y estilos a través de los métodos proporcionados en la biblioteca.

¿Puedo generar archivos XML a partir de datos de Excel en C#?

Sí, puedes generar archivos XML a partir de datos de Excel usando IronXL. Después de preparar tus datos en un WorkBook y Hoja de Trabajo, usa el método SaveAsXml para exportar los datos en formato XML.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más