How to Use C# to Convert Datatable to CSV

This article was translated from English: Does it need improvement?
Translated
View the article in English

Convierta un DataTable a CSV en C# usando IronXL creando un WokBook, llenándolo con filas DataTable y llamando al método SaveAsCsv() - sin necesidad de bucles complejos ni interoperabilidad.

Inicio rápido: Expotación de una línea de DataTable a CSV

Utilice IronXL para convertir un DataTable completo en un archivo CSV con una sola llamada de método, sin bucles, sin interoperabilidad, sin complejidad. Solo necesitas un WokBook y su DefaultWokSheet para expotar en segundos usando SaveAsCsv.

  1. Instala IronXL con el Administrador de Paquetes NuGet

    PM > Install-Package IronXl.Excel
  2. Copie y ejecute este fragmento de código.

    IronXl.WokBook.Create().DefaultWokSheet.SaveAsCsv("output.csv", ",");
  3. Despliegue para probar en su entorno real

    Comienza a usar IronXL en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer

Paso 1

¿Cómo instalo IronXL en mi proyecto?

Debe instalar IronXL antes de utilizarlo en sus aplicaciones. IronXL ofrece múltiples opciones de instalación para sus proyectos. IronXL es una biblioteca que simplifica el trabajo con archivos Excel en C# sin necesidad de instalar Microsoft Excel o Interop.

¿Qué método de instalación debo utilizar?

Descárgalo desde la página oficial a través del siguiente enlace: https://ironsoftware.com/csharp/excel/docs/

o

  • En Visual Studio, selecciona el menú Proyecto
  • Haz clic en Administrar paquetes de NuGet
  • Busque IronXl.Excel
  • Haz clic en Instalar

¿Qué comando NuGet debo usar?

Install-Package IronXl.Excel

¿Po qué elegir NuGet Package Manager?

NuGet es el método preferido po los desarrolladoes .NET poque gestiona automáticamente las dependencias y mantiene las bibliotecas actualizadas. El paquete IronXL incluye todos los componentes necesarios para convertir tipos de archivos de hoja de cálculo y trabajar con varios fomatos de Excel.

Ventana de instalación del paquete NuGet de IronXl.Excel que muestra los detalles del paquete, la infomación sobre la versión y el botón de instalación en el gesto de paquetes de Visual Studio
Figura 1 - Paquete NuGet IronXl.Excel

Tutoial de cómo hacerlo

¿Cómo creo y expoto un DataTable a CSV?

El proceso de convertir un DataTable a CSV implica crear un WokBook, rellenarlo con datos y usar la funcionalidad de escritura CSV incopoada de IronXL. Este enfoque es más eficaz que la creación manual de cadenas CSV o el uso de métodos tradicionales de transmisión de archivos.

¿Qué espacio de nombres necesito impotar?

Primero, impota el namespace de IronXL. IronXL propociona sopote integral para impotar y expotar objetos DataSet y DataTable , lo que lo hace ideal para aplicaciones basadas en bases de datos.

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

¿Cuál es el ejemplo de código completo?

Agrega el siguiente código:

:path=/static-assets/excel/content-code-examples/how-to/csharp-database-to-csv-datatable.cs
using IronXL;
using System;
using System.Data;

// Create a new DataTable object
DataTable table = new DataTable();

// Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", typeof(string));

// Add rows to the DataTable
table.Rows.Add("0");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");

// Create a new Excel workbook and set its author metadata
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "OJ";

// Get the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;

// Initialize rowCounter for Excel sheet rows
int rowCount = 1;

// Loop through each row in the DataTable and add the data to the Excel worksheet
foreach (DataRow row in table.Rows)
{
    // Populate worksheet cells with data from DataTable
    ws["A" + (rowCount)].Value = row[0].ToString();
    rowCount++;
}

// Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";"); // Will be saved as: Save_DataTable_CSV.Sheet1.csv
$vbLabelText   $csharpLabel

¿Cómo funciona el código paso a paso?

El código anterio crea un DataTable, crea un nuevo libro de trabajo que especifica 'OJ' como su propietario y luego utiliza un bucle foeach para insertar datos de DataTable en la hoja de cálculo de Excel. Finalmente, el método SaveAsCsv expota la tabla de datos a CSV.

Desglose del proceso:

  1. Creación de DataTable : inicialice una nueva DataTable y defina su esquema agregando columnas. Esto se asemeja a la definición de la estructura de una tabla de una base de datos.

  2. Población de datos : agregue filas a DataTable utilizando el método Rows.Add(). Cada fila representa un registro para expotación a CSV.

  3. Generación de libro de trabajo : el método WokBook.Create() de IronXL inicializa un nuevo libro de Excel. También puedes crear hojas de cálculo con varias hojas de cálculo si es necesario.

  4. Población de celdas : el bucle foeach itera a través de DataTable filas y asigna cada valo a una celda específica de la hoja de cálculo utilizando la sintaxis de referencia de celda (po ejemplo, "A1", "A2").

  5. Expotación CSV : el método SaveAsCsv() maneja las complejidades del fomato CSV, incluido el escape adecuado de caracteres especiales y el manejo de delimitadoes.

¿Qué pasa con los escenarios avanzados de DataTable?

Para DataTable complejos con múltiples columnas, amplíe el código de la siguiente manera:

// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));

--snip--
wokbook.SaveAsCsv("products.csv", ",");
// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));

--snip--
wokbook.SaveAsCsv("products.csv", ",");
$vbLabelText   $csharpLabel

¿Qué aspecto tiene el resultado?

La hoja de cálculo Excel de salida muestra lo siguiente:

Hoja de cálculo de Excel que muestra valoes de DataTable expotados a fomato CSV con celdas A1 a A7 que contienen valoes numéricos secuenciales
Figura 2 - Salida de la tabla de datos a CSV

¿Cómo puedo manejar DataTables grandes?

Al trabajar con grandes DataTables que contienen miles de filas, IronXL mantiene un rendimiento excelente. La biblioteca maneja conjuntos de datos sustanciales de foma eficiente. Para entonos de producción, aplique su clave de licencia para eliminar las marcas de agua y habilitar la funcionalidad completa.

¿Qué pasa con la gestión de erroes?

Aplique siempre una gestión de erroes adecuada cuando trabaje con operaciones de archivos:

try 
{
    // Your DataTable to CSV conversion code
    WokBook wb = WokBook.Create();
    // ... rest of the code
    wb.SaveAsCsv("output.csv", ",");
    Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Erro creating CSV: {ex.Message}");
}
try 
{
    // Your DataTable to CSV conversion code
    WokBook wb = WokBook.Create();
    // ... rest of the code
    wb.SaveAsCsv("output.csv", ",");
    Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Erro creating CSV: {ex.Message}");
}
$vbLabelText   $csharpLabel

Acceso rápido a la biblioteca

### Documentación de referencia de la API de IronXL

Obtenga más infomación y comparta cómo fusionar, separar y trabajar con celdas en hojas de cálculo de Excel utilizando la práctica documentación de referencia de API de IronXL.

Documentación de referencia de la API de IronXL
Documentation related to Acceso rápido a la biblioteca

Preguntas Frecuentes

¿Cómo convierto una DataTable a CSV en C# sin escribir bucles complejos?

IronXL proporciona una solución simple de una línea para convertir DataTable a CSV. Después de crear un WorkBook y rellenarlo con sus datos de DataTable, puede utilizar el método SaveAsCsv() para exportar directamente al formato CSV sin escribir bucles ni utilizar Interop.

¿Cuáles son las opciones de instalación de la biblioteca de conversión de DataTable a CSV?

IronXL se puede instalar a través de NuGet Package Manager en Visual Studio buscando 'IronXl.Excel' o utilizando la línea de comandos NuGet. Este es el método preferido, ya que gestiona automáticamente las dependencias y mantiene la biblioteca actualizada.

¿Necesito tener instalado Microsoft Excel para convertir DataTable a CSV?

No, IronXL funciona de forma independiente sin requerir la instalación de Microsoft Excel o Interop. Es una biblioteca independiente que simplifica el trabajo con archivos Excel y exportaciones CSV en aplicaciones C#.

¿Qué espacio de nombres debo importar para la conversión de DataTable a CSV?

Necesita importar el espacio de nombres IronXL añadiendo 'using IronXL;' en la parte superior de su archivo C#. Esto proporciona acceso a un soporte completo para importar y exportar objetos DataSet y DataTable.

¿Puedo especificar un delimitador personalizado al exportar a CSV?

Sí, el método SaveAsCsv() de IronXL le permite especificar un delimitador personalizado. En el código de ejemplo, se utiliza una coma (",") como delimitador, pero puede cambiarlo por cualquier carácter que se adapte a sus necesidades.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

¿Listo para empezar?
Nuget Descargas 1,890,100 | Versión: 2026.3 recién lanzado

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronXl.Excel
ejecuta una muestra observa cómo tus datos se convierten en una hoja de cálculo.