Saltar al pie de página
USANDO IRONXL

Cómo exportar 'DataTable' a CSV en C#

IronXL permite una conversión fluida de DataTable a CSV en C# sin requerir la instalación de Microsoft Excel. Esta biblioteca .NET independiente proporciona una API simple para convertir automáticamente DataTables a archivos CSV con estructuras y delimitadores personalizados, facilitando la exportación de datos para los desarrolladores.

IronXL es una biblioteca popular que permite a los desarrolladores interactuar con documentos de Microsoft Excel en tecnologías C# .NET, incluidos archivos CSV, sin necesidad de tener instalado Microsoft Excel. Permite la conversión automática de tipos registrados a archivos CSV y la escritura de archivos CSV con estructuras personalizadas.

¿Qué características ofrece la biblioteca IronXL?

Los documentos de Microsoft Excel pueden ser leídos y convertidos en archivos CSV usando la biblioteca C# IronXL .NET. IronXL es una biblioteca de software .NET independiente que puede leer una variedad de formatos de hojas de cálculo. No depende de Microsoft.Office.Interop.Excel ni requiere la instalación de Microsoft Excel.

Con la ayuda de la API de C# fácil de usar de IronXL, puedes leer rápidamente, modificar y crear archivos de hojas de cálculo de Excel en el entorno .NET. .NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS, y Azure son completamente compatibles con IronXL.

  • Las bibliotecas principales de hojas de cálculo Excel para C# en .NET Core y .NET Framework incluyen IronXL.
  • Prácticamente todos los marcos .NET son compatibles, incluidos Console, Windows Forms y aplicaciones web.
  • IronXL opera en sistemas operativos Windows, Linux y macOS.
  • IronXL hace que leer archivos de Excel sea simple y rápido.
  • IronXL soporta múltiples formatos de Excel: archivos XLSX, XLS, CSV, TSV, XLST y XLSM.
  • IronXL exporta archivos a varios formatos, incluidos XLS, CSV, TSV, JSON y XML.
  • IronXL genera cálculos de Excel y soporta fórmulas.
  • IronXL soporta formatos de datos de columnas de Excel incluidos texto, números, fechas, monedas y porcentajes.

Para más detalles, visita la visión general de la documentación de IronXL.

¿Cómo creo un nuevo proyecto en Visual Studio?

En Visual Studio, se debe crear un proyecto .NET antes de poder usar el marco IronXL. Cualquier edición de Visual Studio funcionará, pero se recomienda la más reciente. Dependiendo de tus necesidades, puedes construir una aplicación de Windows Forms o diferentes plantillas de proyecto. Para mantener las cosas simples, este tutorial usará la aplicación de consola.

El diálogo Crear Nuevo Proyecto de Visual Studio muestra varias plantillas de proyectos .NET, incluidas las opciones de Aplicación de Consola, Aplicación Web ASP.NET Core, y Aplicación de Servidor Blazor. Crea un nuevo proyecto en Visual Studio

Después de eso, ingrese el nombre y la ubicación del proyecto.

El diálogo de configuración del proyecto en Visual Studio muestra la configuración para una nueva aplicación de consola de C# con el nombre del proyecto 'ConsoleApp1', orientándose a Windows con salida de consola. Configurar el nuevo proyecto

A continuación, selecciona la estructura siguiente. .NET Core 6 será utilizado en este proyecto.

El diálogo de creación de proyectos de Visual Studio muestra la configuración de la Aplicación de Consola con .NET 6.0 (Soporte a largo plazo) seleccionado como el marco. Seleccionar una versión de .NET Framework

El archivo program.cs se abrirá después de que la aplicación genere la solución para que puedas ingresar el código del programa y construir/ejecutar la aplicación.

Ventana de aplicación de consola C# vacía en Visual Studio que muestra el proyecto IronXLConsole con la estructura de código inicial lista para implementar la funcionalidad de exportación a CSV. El proyecto de aplicación de consola recién creado

Luego se puede agregar la biblioteca y usarla para evaluar el código. Para otros tipos de proyectos como aplicaciones .NET MAUI o proyectos VB.NET, el proceso es similar pero con consideraciones específicas del marco.

¿Cómo instalo la biblioteca IronXL?

Hay cuatro métodos para descargar e instalar la Biblioteca IronXL.

Los cuales son:

  • Instalación a través de Visual Studio
  • Instalación usando la Consola del Administrador de Paquetes de Visual Studio
  • Descargando directamente desde el sitio web de NuGet
  • Descarga directa desde el sitio web de IronXL

¿Qué método debo usar para la instalación de Visual Studio?

Usando NuGet Package Manager, se puede instalar el módulo IronXL. Para encontrar IronXL, primero debe iniciar el NuGet Package Manager y luego buscar en el panel de navegación. Instale IronXL eligiéndolo de los listados de búsqueda. Después de eso, la biblioteca IronXL podrá usar esta aplicación.

La imagen a continuación demuestra cómo iniciar el Administrador de Paquetes NuGet de Visual Studio.

Menú de Herramientas de Visual Studio expandido mostrando la opción de Administrador de paquetes NuGet y Consola del Administrador de Paquetes destacada en el menú desplegable de Herramientas. Navega al Administrador de Paquetes NuGet

Interfaz del Administrador de Paquetes NuGet mostrando el paquete IronXl.Excel con la versión 2022.3.0, mostrando 133K descargas y el botón de Instalar para fácil integración. Instalar el paquete IronXL en la IU del Administrador de Paquetes NuGet

¿Cuándo debo usar la Consola del Administrador de Paquetes?

Muchos desarrolladores prefieren usar una consola para realizar tareas. Por lo tanto, una instalación de terminal también es una opción. Para instalar IronXL usando la línea de comandos, siga las instrucciones a continuación.

  • Navegue a Herramientas > Administrador de Paquetes NuGet > Interfaz del Administrador de Paquetes en Visual Studio.
  • Ingrese el siguiente comando en la pestaña de consola del administrador de paquetes:

    Install-Package IronXl.Excel
  • Espere a que IronXL se descargue e instale en el proyecto activo.

Consola del Administrador de Paquetes en Visual Studio mostrando el comando 'Install-Package IronXl.Excel' con mensajes de confirmación de instalación exitosa. Instalar el paquete IronXL en la IU de la Consola del Administrador de Paquetes

¿Por qué descargaría desde el sitio web de NuGet?

El paquete NuGet se puede descargar directamente desde el sitio web como tercera opción. Este método es particularmente útil cuando se trabaja en entornos con acceso restringido a internet o cuando necesitas gestionar paquetes manualmente.

  • Navega al enlace oficial de NuGet.
  • La opción de descarga de paquetes se puede encontrar en el menú a la derecha.
  • Haga clic dos veces en el archivo guardado. Se instalará inmediatamente.
  • Recargue la solución después de eso y comience a utilizarla en el proyecto.

¿Cómo instalo directamente desde el sitio web de IronXL?

Para descargar el paquete más reciente directamente desde el sitio web, haga clic en este enlace para descargar un archivo ZIP de IronXL. Este enlace descargará un archivo ZIP que contiene la última versión del archivo DLL de la biblioteca IronXL. Una vez finalizada la descarga, extraiga el contenido del archivo ZIP en cualquier directorio de su elección.

Para agregar el archivo al proyecto después de descargarlo, siga los pasos que se indican a continuación.

  • Haz clic derecho en el proyecto desde la ventana de solución.
  • Seleccione Referencias y luego navegue a la carpeta extraída que contiene los DLL de IronXL.
  • Seleccione el DLL y haga clic en OK para agregarlo al proyecto activo como una Referencia.

Para escenarios de despliegue, también puedes configurar IronXL en contenedores Docker o desplegar en plataformas en la nube como AWS Lambda y Funciones de Azure.

¿Cómo exporto un DataTable a un archivo CSV?

DataTables puede exportarse fácil y rápidamente a archivos CSV usando IronXL. Ayuda a escribir datos en nuevos archivos CSV con soporte para delimitadores personalizados y opciones de codificación.

Primero, como se muestra en la imagen de código a continuación, se debe incluir el espacio de nombres de IronXL para usar las clases y métodos de IronXL.

Editor de código C# mostrando las declaraciones de espacio de nombres 'using IronXL;' y 'using System.Data;' con resaltado de sintaxis para la implementación de exportación de DataTable a CSV. Agregar espacios de nombres comunes

Se pueden crear archivos de Excel usando IronXL, que luego se transforman en objetos WorkBook. Luego se realizan varias operaciones en estos objetos. El código de ejemplo a continuación construirá un archivo de Excel convirtiendo un DataTable en una hoja de cálculo de Excel.

using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
$vbLabelText   $csharpLabel

El código anterior exporta el DataTable a un archivo de Excel. Los encabezados de columna se crean una vez se crea un DataTable. Luego, agregue las filas una por una después de establecer la primera columna. El objeto WorkBook se crea después de agregar las columnas y filas al objeto DataTable para contener esos datos. Luego se construye el objeto WorkSheet, que se añade al objeto WorkBook.

Cada valor del DataTable se lee y se añade usando un bucle foreach antes de añadir el valor al WorkSheet. Después de que todos los valores han sido añadidos a la hoja de cálculo, el método SaveAsCsv los guarda en un archivo CSV. Puedes especificar tanto el delimitador como la ubicación del archivo como parámetros.

Para escenarios más complejos, puedes exportar múltiples DataTables como diferentes hojas de cálculo o trabajar con DataSets para una organización de datos más estructurada.

Trabajando con diferentes formatos CSV

IronXL proporciona flexibilidad al trabajar con archivos CSV. Aquí hay un ejemplo que muestra cómo exportar un DataTable con formato y codificación personalizados:

// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
    // Create workbook from DataTable
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("DataExport");

    // Add headers
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
        ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
    }

    // Add data rows
    for (int row = 0; row < dataTable.Rows.Count; row++)
    {
        for (int col = 0; col < dataTable.Columns.Count; col++)
        {
            ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
        }
    }

    // Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
    // Create workbook from DataTable
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("DataExport");

    // Add headers
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
        ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
    }

    // Add data rows
    for (int row = 0; row < dataTable.Rows.Count; row++)
    {
        for (int col = 0; col < dataTable.Columns.Count; col++)
        {
            ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
        }
    }

    // Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
$vbLabelText   $csharpLabel

Este enfoque te da más control sobre el proceso de exportación, permitiéndote establecer formatos de datos de celda y personalizar la estructura de salida.

Hoja de cálculo de Excel que muestra una lista de frutas (Manzana, Naranja, fresa, uvas, sandía, plátanos, limones) en la columna A con el formato CSV adecuado y sin delimitadores adicionales. El archivo CSV de salida

La salida del ejemplo de código en ejecución se muestra arriba. En la captura de pantalla, cada pieza de datos de la tabla de datos ha sido agregada individualmente a la nueva hoja de Excel formada. También puedes aplicar formato a las celdas antes de exportar o añadir fórmulas para valores calculados.

Para operaciones CSV más avanzadas, puedes:

Para obtener más información sobre el tutorial de IronXL, haga clic en este cómo exportar a formatos de Excel.

¿Por qué debería usar IronXL para la exportación CSV?

Uno de los programas más populares de Excel es IronXL. No se basa en ninguna otra biblioteca de fuentes externas. Es autónomo y no requiere la instalación de Microsoft Excel. Opera a través de numerosos canales.

IronXL proporciona una solución integral para todas las tareas relacionadas con documentos de Microsoft Excel que se implementan programáticamente. Puedes realizar cálculos de fórmulas, ordenar cadenas o números, recortar y añadir, buscar y reemplazar, unir y desunir, guardar archivos, etc. También puedes establecer formatos de datos de celda junto con validar datos de hojas de cálculo. También admite la lectura y escritura de archivos CSV y le ayuda a trabajar como datos de Excel.

Los beneficios adicionales incluyen:

IronXL tiene un precio inicial al lanzamiento de $799. También ofrece a los usuarios la opción de pagar una tarifa de suscripción de un año por asistencia con el producto y actualizaciones. Por un cargo adicional, IronXL ofrece seguridad para la redistribución sin restricciones. Para investigar información más aproximada sobre precios, visite esta página de licencias.

Preguntas Frecuentes

¿Cómo puedo exportar una DataTable a un archivo CSV en C#?

Puedes usar IronXL para exportar una DataTable a un archivo CSV creando un WorkBook y exportando los datos en objetos de hoja de trabajo. Esto permite una conversión y exportación sin problemas, sin requerir Microsoft Excel.

¿Qué formatos de archivo puedo exportar usando esta biblioteca?

IronXL permite exportar datos a varios formatos como XLS, CSV, TSV y JSON, proporcionando flexibilidad en el manejo de diferentes necesidades de datos.

¿Es posible realizar operaciones similares a Excel con esta biblioteca?

Sí, IronXL permite operaciones similares a Excel, como cálculos de fórmulas, ordenación de datos y guardado de archivos, convirtiéndolo en una herramienta integral para tareas de programación relacionadas con Excel.

¿Necesito instalar Microsoft Excel para usar esta biblioteca?

No, IronXL es una biblioteca independiente de .NET que no requiere que Microsoft Excel esté instalado, lo que permite a los desarrolladores trabajar con documentos de Excel directamente dentro de sus aplicaciones C#.

¿Qué plataformas son compatibles con esta biblioteca?

IronXL es compatible con múltiples plataformas, incluyendo .NET Core, .NET Framework, Xamarin, así como sistemas operativos como Windows, Linux y macOS.

¿Cómo puedo instalar la biblioteca IronXL en mi proyecto?

IronXL puede instalarse en un proyecto .NET usando Visual Studio accediendo al Administrador de Paquetes NuGet o descargando directamente desde los sitios web de NuGet o IronXL.

¿Cuáles son las opciones de precios disponibles para esta biblioteca?

IronXL ofrece un precio inicial con opciones para una suscripción de un año que incluye asistencia de producto y actualizaciones, proporcionando soporte continuo y acceso a las últimas características.

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me