Saltar al pie de página
USANDO IRONXL

Cómo exportar a CSV en .NET Core

1.0 Introducción

Una de las bibliotecas más conocidas, IronXL, se utilizará en este artículo para contrastar y comparar diferentes formas en que las tecnologías .NET pueden interactuar programáticamente con documentos de Microsoft Excel. También construirá un entorno para leer, escribir y exportar hojas de cálculo de Excel a archivos CSV.

2.0 Hierro XL

IronXL para .NET, una biblioteca de Excel en C#, se puede usar para leer y convertir documentos de Microsoft Excel a archivos CSV. IronXL es una biblioteca de software .NET independiente que se puede usar sin la instalación de Microsoft Office o Microsoft.Office.Interop.Excel. Puede leer una variedad de formatos de hoja de cálculo.

Las hojas de cálculo de Excel se pueden leer, editar y generar con facilidad en un entorno .NET gracias a la API de C# simple de IronXL. Xamarin, Linux, macOS, Azure, .NET Core y .NET Framework son totalmente compatibles con IronXL.

2.1 Características de la biblioteca IronXL

  • Entre las mejores bibliotecas de C# para hojas de cálculo de Excel se encuentra IronXL, que funciona con tanto .NET Core como .NET Framework.
  • Prácticamente todos los marcos de .NET son compatibles con IronXL, incluyendo consola, Windows Forms y aplicaciones web.
  • Windows, macOS y Linux son compatibles con IronXL.
  • Los archivos de Excel se pueden acceder de manera rápida y fácil usando IronXL.
  • IronXL puede leer formatos de archivo de Excel como archivos XLSX, archivos CSV, XLS, XSLT, TSV, XLSM, entre otros. Entre muchas posibilidades, hay funciones para importar, actualizar y exportar conjuntos de datos y tablas de datos.
  • IronXL puede generar cálculos para la hoja de cálculo de Excel.
  • Para las columnas de Excel, IronXL admite una amplia gama de tipos de datos, como texto, enteros, fechas, monedas, fórmulas y porcentajes.
  • IronXL admite fechas, monedas, porcentajes, texto, números, fórmulas y otros tipos de datos de columna de Excel.

3.0 Creación de un proyecto .NET Core 6

Verás lo fácil que es construir un archivo CSV usando la biblioteca IronXL en las secciones siguientes de este boletín.

Paso 1: Inicia un nuevo proyecto para generar un archivo CSV.

Abre Visual Studio y elige "Nuevo Proyecto" en el menú "Archivo".

Elige las plantillas de proyecto "Aplicación de Consola" .NET del cuadro de diálogo que aparece, luego haz clic en "Siguiente".

Cómo Exportar a CSV en .NET Core, Figura 1: Crear una nueva Aplicación de Consola en Visual Studio Crear una nueva Aplicación de Consola en Visual Studio

Puedes ingresar el nombre que desees para el "Nombre del Proyecto". Una vez proporcionada la ubicación del nuevo proyecto en la sección "Ubicación", haz clic en el botón Siguiente para continuar.

Cómo Exportar a CSV en .NET Core, Figura 2: Configurar el nuevo proyecto Configurar el nuevo proyecto

El menú desplegable Framework se puede usar para elegir un .NET Framework. En este caso, la versión de .NET a largo plazo es 6.0. A continuación, haz clic en el botón Crear.

Cómo Exportar a CSV en .NET Core, Figura 3: Selección de marco de trabajo de .NET Selección de marco de trabajo de .NET

Instala la biblioteca IronXL, ya que es necesaria para la resolución subsiguiente. Ingrese el siguiente comando en la Consola del Administrador de Paquetes para lograr esto:

Install-Package IronXL.Excel

Cómo Exportar a CSV en .NET Core, Figura 4: Instalar el paquete de IronXL Instalar el paquete IronXL

Una alternativa es buscar el paquete "IronXL" usando el Administrador de Paquetes NuGet. En la pestaña Examinar, ingresa "IronXL" en la caja de búsqueda para buscar la biblioteca IronXL. De esta lista de todos los paquetes NuGet relacionados con IronXL, selecciona el paquete requerido para descargar.

Cómo Exportar a CSV en .NET Core, Figura 5: Buscar e instalar el paquete de IronXL en la UI del Administrador de Paquetes NuGet Buscar e instalar el paquete IronXL en la interfaz del Administrador de Paquetes NuGet

4.0 Exportar datos a archivo CSV

Con IronXL, crear tablas de datos a archivos CSV es simple y rápido. Facilita la escritura de datos a un archivo CSV nuevo. El primer paso es incluir el espacio de nombres de IronXL, como se muestra en la captura de pantalla del código a continuación. Una vez presentado IronXL, sus clases y métodos se pueden usar en el código.

Cómo Exportar a CSV en .NET Core, Figura 6: Incluir el espacio de nombres de IronXL Incluya el espacio de nombres IronXL

IronXL se puede usar para crear archivos de Excel, que luego se convierten en objetos WorkBook. Una vez que se convierten en objetos de la clase WorkBook, es posible trabajar con ellos de varias maneras. Al transformar un DataTable en una hoja de trabajo de Excel, el código fuente de muestra debajo crea un archivo de Excel.

using IronXL;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        ExportToExcel("test.csv");
    }

    // Method to export a DataTable to an Excel sheet which is then saved as a CSV file
    public static void ExportToExcel(string filepath)
    {
        // Create a DataTable and add columns & rows
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animals", typeof(string));
        table.Rows.Add("Lion");
        table.Rows.Add("Tiger");
        table.Rows.Add("Leopard");
        table.Rows.Add("Cheetah");
        table.Rows.Add("Hyenas");

        // Create a new workbook and get the default worksheet
        var workbook = WorkBook.Create(ExcelFileFormat.XLS);
        var worksheet = workbook.DefaultWorkSheet;

        // Add table data to worksheet
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            worksheet["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Save worksheet data to a CSV file
        workbook.SaveAsCsv(filepath, ";");

        // Optionally convert workbook to a stream, useful for web applications
        var stream = workbook.ToStream();
    }
}
using IronXL;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        ExportToExcel("test.csv");
    }

    // Method to export a DataTable to an Excel sheet which is then saved as a CSV file
    public static void ExportToExcel(string filepath)
    {
        // Create a DataTable and add columns & rows
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animals", typeof(string));
        table.Rows.Add("Lion");
        table.Rows.Add("Tiger");
        table.Rows.Add("Leopard");
        table.Rows.Add("Cheetah");
        table.Rows.Add("Hyenas");

        // Create a new workbook and get the default worksheet
        var workbook = WorkBook.Create(ExcelFileFormat.XLS);
        var worksheet = workbook.DefaultWorkSheet;

        // Add table data to worksheet
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            worksheet["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Save worksheet data to a CSV file
        workbook.SaveAsCsv(filepath, ";");

        // Optionally convert workbook to a stream, useful for web applications
        var stream = workbook.ToStream();
    }
}
Imports IronXL
Imports System.Data

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		ExportToExcel("test.csv")
	End Sub

	' Method to export a DataTable to an Excel sheet which is then saved as a CSV file
	Public Shared Sub ExportToExcel(ByVal filepath As String)
		' Create a DataTable and add columns & rows
		Dim table As New DataTable()
		table.Columns.Add("DataSet_Animals", GetType(String))
		table.Rows.Add("Lion")
		table.Rows.Add("Tiger")
		table.Rows.Add("Leopard")
		table.Rows.Add("Cheetah")
		table.Rows.Add("Hyenas")

		' Create a new workbook and get the default worksheet
		Dim workbook = WorkBook.Create(ExcelFileFormat.XLS)
		Dim worksheet = workbook.DefaultWorkSheet

		' Add table data to worksheet
		Dim rowCount As Integer = 1
		For Each row As DataRow In table.Rows
			worksheet("A" & rowCount).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Save worksheet data to a CSV file
		workbook.SaveAsCsv(filepath, ";")

		' Optionally convert workbook to a stream, useful for web applications
		Dim stream = workbook.ToStream()
	End Sub
End Class
$vbLabelText   $csharpLabel

El ejemplo anterior de CSV muestra cómo exportar el DataTable a un archivo CSV. Después de establecer un DataTable, es decir, se crean los encabezados de columna, y una vez establecida la primera columna, se agregan las filas una por una. Después de agregar las filas y columnas al objeto DataTable, se construye el objeto WorkBook. El objeto WorkBook se usa para agregar datos a una hoja de Excel, que luego se puede guardar en otro lugar. El siguiente paso es iniciar el objeto WorkSheet, que está vinculado al objeto del libro.

Antes de agregar el valor a la hoja de trabajo, se usa un bucle foreach para leer cada valor del DataTable. La función SaveAsCsv se usa para guardar los datos en un archivo CSV una vez que todos se han colocado en la hoja de trabajo, usando el nombre del archivo como parámetro. Se puede usar un delimitador como argumento opcional si es necesario. La biblioteca luego ayuda a escribir datos a un archivo CSV. Hay otra forma de leer archivos CSV aparte de Microsoft Excel usando Notepad. Además, el método Save se usa para guardar lo mismo en el formato de archivo dado.

Cómo Exportar a CSV en .NET Core, Figura 7: Salida del archivo de Excel test.csv Salida del archivo de Excel test.csv

Arriba está la salida del ejemplo de código que se ejecutó. Cada pieza de información de la tabla de datos se ha agregado por separado a la hoja de Excel recién creada en la captura de pantalla. Alternativamente, también puede convertirse en un flujo como parte de la aplicación web para devolver archivos que se pueden descargar desde el lado del cliente.

Para obtener más información sobre cómo exportar datos de DataTable a Excel, consulta esta página del tutorial.

Para saber más sobre cómo exportar datos a Excel, consulta este tutorial paso a paso.

5.0 Conclusión

IronXL está entre las utilidades de Excel más usadas. No depende de ninguna otra biblioteca externa. Es independiente y no necesita tener Microsoft Excel instalado. Además, funciona a través de una variedad de canales.

Para todas las operaciones relacionadas con documentos de Microsoft Excel implementadas programáticamente, IronXL ofrece una solución integral. Calcular fórmulas, ordenar cadenas o números, recortar, anexar, encontrar y reemplazar, fusionar y deshacer la fusión, guardar archivos y más son posibles. Junto con la validación de datos de la hoja de cálculo, también puedes establecer tipos de datos de celdas. Facilita trabajar con datos de Excel y permite leer y escribir archivos.

IronXL ofrece una licencia de prueba gratuita, que permite a los usuarios probar y probar todas sus increíbles características de forma gratuita.

Al lanzamiento, IronXL está disponible por $799. Los usuarios también pueden optar por pagar una tarifa de suscripción anual para recibir actualizaciones y asistencia del producto. IronXL proporciona seguridad para la redistribución ilimitada por un cargo adicional. Para consultar datos de precios más precisos, visita la página de licencia de IronXL.

Preguntas Frecuentes

¿Cómo puedo exportar datos a un archivo CSV usando .NET Core?

Puedes exportar datos a un archivo CSV en una aplicación .NET Core usando IronXL. Comienza configurando un nuevo proyecto .NET Core en Visual Studio, instala IronXL vía NuGet y usa sus objetos WorkBook y WorkSheet para guardar tus datos como un archivo CSV con el método SaveAsCsv.

¿Es posible leer y escribir archivos de Excel sin Microsoft Office?

Sí, IronXL te permite leer y escribir archivos de Excel sin requerir Microsoft Office o Microsoft.Office.Interop.Excel. Proporciona una solución independiente para gestionar hojas de cálculo de Excel dentro de aplicaciones .NET.

¿Cuáles son los beneficios de usar IronXL para exportaciones CSV en .NET Core?

IronXL proporciona una manera simple y eficiente de manejar exportaciones CSV en .NET Core. Soporta múltiples plataformas, no requiere Microsoft Office y ofrece funcionalidades como cálculos de fórmulas, ordenamiento de datos y manejo de grandes conjuntos de datos.

¿Cómo instalo IronXL en un proyecto .NET Core?

Para instalar IronXL en un proyecto .NET Core, puedes usar la Consola del Administrador de Paquetes con el comando Install-Package IronXL o usar la interfaz de usuario del Administrador de Paquetes NuGet en Visual Studio para buscar e instalar 'IronXL'.

¿Puedo usar IronXL en plataformas distintas de Windows?

Sí, IronXL es compatible con múltiples plataformas, incluyendo Windows, macOS y Linux. También soporta aplicaciones Xamarin, Azure, .NET Core y .NET Framework, haciéndolo versátil para varios entornos.

¿Cómo manejas grandes conjuntos de datos en Excel con IronXL?

IronXL puede manejar eficientemente grandes conjuntos de datos en Excel aprovechando su robusta API de C#. Permite una rápida manipulación de datos, soporta varios formatos de Excel y proporciona funcionalidades como ordenamiento y validación de datos.

¿IronXL soporta cálculos de fórmulas de Excel?

Sí, IronXL soporta cálculos de fórmulas de Excel. Puedes realizar cálculos complejos en tus datos de hoja de cálculo usando la API de IronXL, similar a cómo lo harías dentro de Excel.

¿Existen opciones de licenciamiento disponibles para IronXL?

IronXL ofrece una licencia de prueba gratuita para probar sus características, así como varias opciones de licenciamiento para funcionalidad completa. Esto proporciona a los desarrolladores flexibilidad para elegir el plan adecuado para sus necesidades.

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