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.
Crea un nuevo proyecto en Visual Studio
Después de eso, ingrese el nombre y la ubicación del proyecto.
Configurar el nuevo proyecto
A continuación, selecciona la estructura siguiente. .NET Core 6 será utilizado en este proyecto.
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.
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.
Navega al Administrador de Paquetes NuGet
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.
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.
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, ";");
}
Imports IronXL
Imports System.Data
' Entry point of the application
Shared Sub Main(ByVal args() As String)
' Specify the file path for the CSV file output
ExportToExcel("H:\test.csv")
End Sub
' Exports the DataTable to an Excel file and saves it as CSV
Public Shared Sub ExportToExcel(ByVal filepath As String)
' Create a DataTable and add columns and rows
Dim table As New DataTable()
table.Columns.Add("DataSet_Fruits", GetType(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
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
Dim writer = wb.DefaultWorkSheet
Dim rowCount As Integer = 1
For Each row As DataRow In table.Rows
' Write each item from the DataTable into the worksheet starting from cell A1
writer("A" & (rowCount)).Value = row(0).ToString()
rowCount += 1
Next row
' Save the workbook as a CSV file with a specified delimiter
wb.SaveAsCsv(filepath, ";")
End Sub
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);
}
Imports System.Text
' Export with custom delimiter and encoding
Public Shared Sub ExportToCSVWithOptions(dataTable As DataTable, filepath As String)
' Create workbook from DataTable
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim ws As WorkSheet = wb.CreateWorkSheet("DataExport")
' Add headers
For i As Integer = 0 To dataTable.Columns.Count - 1
ws($"{ChrW(AscW("A"c) + i)}1").Value = dataTable.Columns(i).ColumnName
Next
' Add data rows
For row As Integer = 0 To dataTable.Rows.Count - 1
For col As Integer = 0 To dataTable.Columns.Count - 1
ws($"{ChrW(AscW("A"c) + col)}{row + 2}").Value = dataTable.Rows(row)(col)
Next
Next
' Save with custom delimiter (comma) and UTF-8 encoding
wb.SaveAsCsv(filepath, ",", Encoding.UTF8)
End Sub
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.
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:
- Leer archivos CSV con delimitadores personalizados
- Escribir en archivos CSV con codificación específica
- Convertir entre diferentes formatos de hojas de cálculo
- Exportar a formatos JSON o XML
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:
- Protección mediante contraseña para exportaciones de datos sensibles
- Optimización del rendimiento para conjuntos de datos grandes
- Soporte de formato condicional en Excel antes de la exportación CSV
- Soporte de rangos con nombre y tablas con nombre
- Preservación de hipervínculos en formatos soportados
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.



