Saltar al pie de página
USANDO IRONXL

Cómo escribir un archivo CSV en C#

Para escribir un archivo CSV en C#, utilice la biblioteca IronXL para crear un libro de trabajo, añada datos a las celdas de la hoja de cálculo utilizando una sintaxis sencilla como workSheet["A1"].Value = "Product" y guarde con workBook.SaveAs("file.csv"), lo que proporciona un enfoque sencillo para la exportación de datos.

Este artículo muestra cómo escribir archivos CSV utilizando una biblioteca de C# llamada IronXL en un nuevo proyecto. La biblioteca IronXL ofrece una solución completa para la manipulación de archivos de Excel sin necesidad de instalar Microsoft Office, lo que la hace ideal para entornos de servidor e implementaciones de Azure.

¿Cómo se escriben datos en un archivo CSV?

  1. Instala la biblioteca de C# para escribir archivos CSV.

  2. Utilice WorkBook.Create para crear un nuevo libro de trabajo.

  3. Crea una hoja de cálculo utilizando WorkBook.CreateWorkSheet.

  4. Añade valores a las celdas utilizando workSheet["cell name"].Value.

  5. Guardar como CSV utilizando el método SaveAs.

Estos pasos constituyen la base para crear hojas de cálculo y exportar datos en diversos formatos. El proceso es similar tanto si se trabaja con CSV, XLSX u otros formatos compatibles. Para situaciones más complejas, también puede importar datos de Excel y convertir entre diferentes tipos de archivos de hoja de cálculo.

¿Por qué IronXL es la mejor opción para las operaciones con CSV?

IronXL destaca como una solución eficiente para los desarrolladores de C# que necesitan escribir datos en archivos CSV, en comparación con el paquete NuGet CSVHelper. En el panorama actual del desarrollo de software, la capacidad de gestionar y manipular datos es esencial, e IronXL lo consigue gracias a su robusto conjunto de herramientas diseñado específicamente para C#.

La biblioteca destaca en varias áreas clave:

Este artículo explora las características y métodos que hacen de IronXL una excelente opción para los desarrolladores de C# que buscan optimizar el proceso de escritura de datos en archivos CSV, equilibrando la simplicidad con la precisión. Tanto si estás creando aplicaciones ASP.NET, trabajando con Blazor o desarrollando aplicaciones .NET MAUI, IronXL ofrece una funcionalidad coherente y fiable.

¿Cómo creo un nuevo proyecto de Visual Studio para operaciones CSV?

Para empezar a utilizar la biblioteca IronXL, deberá crear un nuevo proyecto de Visual Studio C# o cargar uno ya existente. A continuación se explica cómo crear un nuevo proyecto en Visual Studio:

  1. Abra Visual Studio y navegue hasta el menú "Archivo". Verás un menú desplegable; Seleccione "Nuevo" en este menú. Esta acción revelará otro menú lateral.

    Menú desplegable Figura 1: El menú Archivo de Visual Studio con "Nuevo > Proyecto" resaltado, mostrando el primer paso para crear un nuevo proyecto C# para operaciones con archivos CSV

  2. En el menú lateral, busca y haz clic en "Proyecto". Esto abre una nueva ventana. Utilice la barra de búsqueda para encontrar "Aplicación de consola". Seleccione la opción asociada a C# y continúe haciendo clic en el botón Siguiente. La plantilla de aplicación de consola funciona muy bien para demostrar operaciones CSV y se puede adaptar fácilmente a aplicaciones web o implementaciones en la nube.

    Cuadro de diálogo de nuevo proyecto de Visual Studio que muestra la plantilla Figura 2: Creación de un nuevo proyecto de aplicación de consola en Visual Studio con compatibilidad multiplataforma con .NET Core

  3. A continuación aparece una ventana de configuración. Introduzca el nombre del proyecto, especifique la ubicación del proyecto y haga clic en el botón Siguiente. Considera organizar tus proyectos en una estructura de carpetas específica, especialmente cuando trabajes con varios archivos de Excel o integraciones de bases de datos.

    Cuadro de diálogo de configuración de proyecto de Visual Studio que muestra la configuración de una nueva aplicación de consola denominada Figura 3: Configure los ajustes de su nuevo proyecto en Visual Studio, incluyendo el nombre del proyecto, la ubicación y las opciones de la solución

  4. Aparece la ventana final. Seleccione el marco de trabajo de destino e inicie el proceso de creación del proyecto haciendo clic en el botón Crear. Para una compatibilidad óptima con funciones de IronXL como el formato condicional y la creación de gráficos, se recomienda .NET 6.0 o posterior.

    Cuadro de diálogo de creación de proyectos de Visual Studio que muestra el paso Figura 4: Seleccione .NET Framework 5.0 como marco de trabajo de destino en el cuadro de diálogo "Información adicional" al crear un nuevo proyecto de aplicación de consola

¿Cómo instalo la biblioteca IronXL CSV?

Ahora que ya ha configurado el proyecto, vamos a añadir la biblioteca IronXL C#. Sigue estos pasos para instalar IronXL:

  1. En Visual Studio, ve al menú Herramientas. Aparecerá un menú desplegable; seleccione NuGet Package Manager en este menú. IronXL también se puede instalar a través de contenedores Docker para aplicaciones en contenedores.
  2. En el Administrador de paquetes de NuGet, seleccione "Administrar paquetes de NuGet para la solución" en el menú lateral.

    Menú de Visual Studio Tools que muestra las opciones del Administrador de paquetes, incluyendo la Consola del Administrador de paquetes, Administrar paquetes NuGet para la solución y Configuración del Administrador de paquetes Acceda al Administrador de paquetes de NuGet a través del menú Herramientas de Visual Studio para instalar paquetes que permitan escribir archivos CSV en C#

  3. Se abre una nueva ventana. Ve a la pestaña "Explorar" y, en la barra de búsqueda, escribe "IronXL". Verá una lista de paquetes de IronXL; Seleccione la versión más reciente y haga clic en el botón Instalar. La biblioteca admite diversas operaciones, como el formato de celdas, la edición de fórmulas y el manejo de imágenes.

    El gestor de paquetes NuGet muestra el paquete IronXl.Excel con la versión 2023.11.12 disponible para su instalación, con 592 000 descargas La interfaz del Gestor de paquetes NuGet en Visual Studio mostrando el paquete IronXl.Excel listo para su instalación. Tenga en cuenta la última versión estable (12/11/2023) y la popularidad del paquete, con más de 592 000 descargas.

Tras la instalación, asegúrese de que su clave de licencia está correctamente configurada si utiliza IronXL en un entorno de producción. Para el desarrollo y las pruebas, puede utilizar la versión de prueba gratuita.

¿Cómo escribo datos en archivos CSV utilizando IronXL?

Escribamos datos en un archivo CSV utilizando la biblioteca IronXL. En esta sección, crearemos un nuevo archivo CSV y lo rellenaremos con datos. El siguiente ejemplo utiliza IronXL para crear un recibo sencillo en un archivo CSV. Analicemos el código paso a paso.

¿Por qué necesito importar IronXL y System.Linq?

using IronXL; 
using System.Linq;

// This is the main class where execution starts.
public class Program {
    static void Main() {
        // Main method where all logic is executed
    }
}
using IronXL; 
using System.Linq;

// This is the main class where execution starts.
public class Program {
    static void Main() {
        // Main method where all logic is executed
    }
}
$vbLabelText   $csharpLabel

Estas líneas importan las clases y funcionalidades necesarias de la biblioteca IronXL para trabajar con archivos de Excel y los métodos de extensión LINQ del espacio de nombres System.Linq. LINQ resulta especialmente útil al trabajar con rangos y realizar operaciones matemáticas sobre datos de celdas.

¿Cómo se crean WorkBook y WorkSheet?

// Create a new workbook. This serves as the container for all worksheets.
WorkBook workBook = WorkBook.Create();

// Create a new worksheet within the workbook named "Receipt".
WorkSheet workSheet = workBook.CreateWorkSheet("Receipt");
// Create a new workbook. This serves as the container for all worksheets.
WorkBook workBook = WorkBook.Create();

// Create a new worksheet within the workbook named "Receipt".
WorkSheet workSheet = workBook.CreateWorkSheet("Receipt");
$vbLabelText   $csharpLabel

Este código crea un nuevo libro de Excel (WorkBook) y una hoja de cálculo (WorkSheet) dentro de ese libro denominada "Recibo". También puede cargar hojas de cálculo existentes o abrir hojas de trabajo específicas para modificarlas. Para situaciones más complejas, considere la posibilidad de gestionar varias hojas de cálculo dentro de un único libro.

¿Cuándo debo añadir encabezados a mi CSV?

// Set the header row for columns. Headers added for better understanding of data.
workSheet["A1"].Value = "Product"; 
workSheet["B1"].Value = "Price";
// Set the header row for columns. Headers added for better understanding of data.
workSheet["A1"].Value = "Product"; 
workSheet["B1"].Value = "Price";
$vbLabelText   $csharpLabel

Estas líneas establecen la fila de encabezado para las columnas en la primera fila de la hoja de trabajo, etiquetando cada columna. Los encabezados son fundamentales para la organización de los datos y se pueden diseñar utilizando opciones de formato de celda como el tamaño de fuente, los bordes y la alineación. También puedes aplicar colores de fondo y patrones para que los encabezados destaquen.

¿Cuál es la mejor manera de añadir filas de datos?

// Populate worksheet with product data and their respective prices.
workSheet["A2"].Value = "Item 1"; 
workSheet["B2"].DoubleValue = 20.10; 

workSheet["A3"].Value = "Item 2"; 
workSheet["B3"].DoubleValue = 15.50; 

workSheet["A4"].Value = "Item 3"; 
workSheet["B4"].DoubleValue = 10.25;
// Populate worksheet with product data and their respective prices.
workSheet["A2"].Value = "Item 1"; 
workSheet["B2"].DoubleValue = 20.10; 

workSheet["A3"].Value = "Item 2"; 
workSheet["B3"].DoubleValue = 15.50; 

workSheet["A4"].Value = "Item 3"; 
workSheet["B4"].DoubleValue = 10.25;
$vbLabelText   $csharpLabel

Estas líneas añaden información sobre tres artículos, incluyendo sus nombres y precios. Para operaciones masivas, es posible que desee insertar varias filas a la vez o copiar celdas existentes. Cuando trabaje con grandes conjuntos de datos, considere la posibilidad de utilizar la integración de DataTable para una manipulación eficiente de los datos.

¿Cómo puedo calcular valores en mi CSV?

// Define the range for price values to be summed.
var range = workSheet["B2:B4"];

// Calculate the sum of prices.
decimal sum = range.Sum();
// Define the range for price values to be summed.
var range = workSheet["B2:B4"];

// Calculate the sum of prices.
decimal sum = range.Sum();
$vbLabelText   $csharpLabel

Mediante LINQ, este código calcula la suma de los precios de las celdas B2 a B4. La suma se almacena en la variable sum. IronXL admite diversas funciones de agregación, entre las que se incluyen Average, Min y Max. Para cálculos más complejos, puedes utilizar fórmulas de Excel directamente en las celdas.

¿Por qué actualizar los valores calculados en el WorkSheet?

// Display the sum in the console.
System.Console.WriteLine(sum);

// Update the total price in the worksheet.
workSheet["B5"].Value = sum;
// Display the sum in the console.
System.Console.WriteLine(sum);

// Update the total price in the worksheet.
workSheet["B5"].Value = sum;
$vbLabelText   $csharpLabel

La suma se imprime en la consola y también se añade a la celda B5 de la hoja de cálculo. Este enfoque garantiza la coherencia de los datos y permite el formato condicional basado en valores calculados. También puede añadir comentarios para explicar cálculos o proporcionar contexto adicional.

¿Qué método ahorra el libro de trabajo como CSV?

// Save the workbook as a CSV file named "receipt.csv".
workBook.SaveAs("receipt.csv");
// Save the workbook as a CSV file named "receipt.csv".
workBook.SaveAs("receipt.csv");
$vbLabelText   $csharpLabel

Por último, todo el libro se guarda como un archivo CSV denominado "receipt.csv". IronXL gestiona automáticamente el proceso de conversión del formato Excel a CSV. También puede guardar en otros formatos como JSON o XML para diferentes escenarios de integración. En entornos de producción, considere la protección con contraseña para proteger los datos confidenciales.

A continuación se muestra el ejemplo de código completo que ilustra todos los conceptos tratados:

using IronXL;
using System.Linq;

public class Program
{
    static void Main()
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet workSheet = workBook.CreateWorkSheet("Receipt");

        // Add headers with formatting
        workSheet["A1"].Value = "Product";
        workSheet["B1"].Value = "Price";

        // Style the header row
        workSheet["A1:B1"].Style.Font.Bold = true;
        workSheet["A1:B1"].Style.FillPattern = IronXl.Styles.FillPattern.Solid;
        workSheet["A1:B1"].Style.BackgroundColor = "#CCCCCC";

        // Add product data
        workSheet["A2"].Value = "Item 1";
        workSheet["B2"].DoubleValue = 20.10;

        workSheet["A3"].Value = "Item 2";
        workSheet["B3"].DoubleValue = 15.50;

        workSheet["A4"].Value = "Item 3";
        workSheet["B4"].DoubleValue = 10.25;

        // Calculate and add total
        var priceRange = workSheet["B2:B4"];
        decimal total = priceRange.Sum();

        workSheet["A5"].Value = "Total";
        workSheet["B5"].Value = total;
        workSheet["A5:B5"].Style.Font.Bold = true;

        // Apply number formatting to prices
        workSheet["B2:B5"].FormatString = "$#,##0.00";

        // Save as CSV file
        workBook.SaveAs("receipt.csv");

        Console.WriteLine($"Receipt saved successfully. Total: ${total:F2}");
    }
}
using IronXL;
using System.Linq;

public class Program
{
    static void Main()
    {
        // Create a new workbook and worksheet
        WorkBook workBook = WorkBook.Create();
        WorkSheet workSheet = workBook.CreateWorkSheet("Receipt");

        // Add headers with formatting
        workSheet["A1"].Value = "Product";
        workSheet["B1"].Value = "Price";

        // Style the header row
        workSheet["A1:B1"].Style.Font.Bold = true;
        workSheet["A1:B1"].Style.FillPattern = IronXl.Styles.FillPattern.Solid;
        workSheet["A1:B1"].Style.BackgroundColor = "#CCCCCC";

        // Add product data
        workSheet["A2"].Value = "Item 1";
        workSheet["B2"].DoubleValue = 20.10;

        workSheet["A3"].Value = "Item 2";
        workSheet["B3"].DoubleValue = 15.50;

        workSheet["A4"].Value = "Item 3";
        workSheet["B4"].DoubleValue = 10.25;

        // Calculate and add total
        var priceRange = workSheet["B2:B4"];
        decimal total = priceRange.Sum();

        workSheet["A5"].Value = "Total";
        workSheet["B5"].Value = total;
        workSheet["A5:B5"].Style.Font.Bold = true;

        // Apply number formatting to prices
        workSheet["B2:B5"].FormatString = "$#,##0.00";

        // Save as CSV file
        workBook.SaveAs("receipt.csv");

        Console.WriteLine($"Receipt saved successfully. Total: ${total:F2}");
    }
}
$vbLabelText   $csharpLabel

En resumen, este código crea un recibo básico en una hoja de cálculo de Excel utilizando IronXL, calcula el precio total, lo imprime en la consola y guarda el libro como un archivo CSV. El recibo incluye columnas para "Producto" y "Precio", y calcula el precio total basándose en los precios de cada artículo. Funciones adicionales como el ajuste automático del tamaño de las columnas y la fijación de paneles pueden mejorar el resultado final.

Un archivo CSV llamado Ejemplo de salida de un programa en C# que escribe datos de recibos en un archivo CSV, incluyendo una fila de encabezado y valores separados por comas para productos y precios

¿Cuáles son los puntos clave?

Este completo artículo destaca la importancia de escribir archivos CSV en C# y explica el proceso utilizando la biblioteca IronXL. Destaca la importancia fundamental de esta habilidad en diversas aplicaciones centradas en datos y muestra la capacidad de IronXL para simplificar y optimizar las tareas de manipulación de datos dentro del ecosistema C#. El enfoque paso a paso, desde la configuración del proyecto hasta el uso de IronXL para crear un recibo y guardarlo como archivo CSV, le proporciona una comprensión práctica de la perfecta integración entre las operaciones de C# y Excel.

Las principales ventajas de utilizar IronXL para operaciones con CSV incluyen:

  • Simplicidad: API intuitiva que refleja las referencias de celdas de Excel
  • Flexibilidad: compatibilidad con diversos tipos de datos y formatos numéricos
  • Rendimiento: gestión eficiente de grandes conjuntos de datos
  • Compatibilidad: Funciona en todas las plataformas y versiones de .NET
  • Amplias funciones: además de la escritura en CSV, admite gráficos, rangos con nombre y tablas

Al ofrecer versatilidad y eficiencia, IronXL se perfila como una herramienta valiosa para los desarrolladores de C# que buscan mejorar su capacidad para manejar y exportar datos en el omnipresente formato CSV, lo que la convierte en un activo crucial para diversos escenarios de desarrollo de software.

IronXL ofrece una solución para realizar mediante programación todas las tareas relacionadas con Excel, ya sea el cálculo de fórmulas, la ordenación de cadenas, el recorte, la búsqueda y sustitución, la fusión y separación de hojas, el guardado de archivos y mucho más. También puede establecer formatos de datos de celda, trabajar con hipervínculos e incluso agrupar y desagrupar filas y columnas para una mejor organización.

Para el tutorial completo sobre cómo escribir en un archivo CSV, visite este blog aquí. El ejemplo de código para crear un archivo CSV se puede encontrar en el siguiente blog. Entre los recursos adicionales se incluyen tutoriales sobre cómo leer archivos CSV y convertir DataTable a CSV.

IronXL ofrece una prueba gratuita, permitiéndole evaluar sus capacidades. Si te resulta útil para tus proyectos, puedes adquirir una licencia a partir de $799. La biblioteca también ofrece documentación completa, ejemplos de código y referencias de API para ayudarte a ponerte en marcha rápidamente.

Preguntas Frecuentes

¿Cómo puedo escribir archivos CSV en C# sin usar Interop?

Puedes utilizar la biblioteca IronXL para escribir archivos CSV en C# sin necesidad de Interop. IronXL te permite crear libros de trabajo y hojas de trabajo, agregar datos y guardarlos directamente como archivos CSV usando sus métodos integrados.

¿Qué ventajas tiene IronXL sobre CSVHelper para escribir archivos CSV?

IronXL ofrece una gama más extensa de características más allá de solo escribir CSV, como cálculos de fórmulas, formato de celdas y exportación en varios formatos de Excel, proporcionando una solución más completa para los desarrolladores.

¿Cómo puedo comenzar a usar IronXL en un proyecto C#?

Para comenzar a usar IronXL, necesitas instalarlo a través del Administrador de Paquetes NuGet en Visual Studio. Crea un nuevo proyecto C#, navega a 'Herramientas', selecciona 'Administrador de Paquetes NuGet', busca 'IronXL' e instálalo.

¿Se puede usar IronXL para manipular archivos de Excel además de escribir CSVs?

Sí, IronXL es capaz de manejar una amplia gama de tareas relacionadas con Excel, como leer y escribir archivos de Excel, realizar cálculos de fórmulas y gestionar datos en múltiples hojas de trabajo.

¿Cómo puedo agregar datos a una hoja de trabajo en C# usando IronXL?

Para agregar datos a una hoja de trabajo usando IronXL, accede a celdas individuales usando sus identificadores y asigna valores usando la propiedad Value. Luego puedes guardar la hoja de trabajo en el formato deseado.

¿Cómo guardo un libro de trabajo como un archivo CSV usando IronXL?

Después de crear y llenar tu libro de trabajo y hoja de trabajo en IronXL, puedes guardarlo como un archivo CSV usando el método SaveAs, especificando la ruta y el formato del archivo.

¿Hay una versión de prueba de IronXL disponible para evaluación?

Sí, IronXL ofrece una versión de prueba gratuita, que permite a los desarrolladores explorar y evaluar sus características antes de comprometerse a una compra.

¿Cómo puedo calcular el total de números en una hoja de trabajo usando IronXL?

Puedes calcular el total de números en una hoja de trabajo con IronXL usando LINQ para sumar un rango definido de celdas, aprovechando la compatibilidad de la biblioteca con expresiones LINQ de C#.

¿Cuáles son algunos problemas comunes al escribir archivos CSV en C# usando IronXL?

Los problemas comunes pueden incluir rutas de archivo incorrectas o permisos, desajustes en el formato de los datos o campos de datos faltantes. Un manejo adecuado de errores y la validación pueden ayudar a mitigar estos problemas.

¿Puede IronXL manejar grandes conjuntos de datos de manera eficiente en proyectos C#?

Sí, IronXL está diseñado para manejar grandes conjuntos de datos de manera eficiente, permitiendo a los desarrolladores leer, escribir y manipular archivos Excel extensos sin un retraso significativo en el rendimiento.

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

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame