Saltar al pie de página
USANDO IRONXL

Cómo escribir un archivo CSV en C#

Para escribir un archivo CSV en C#, use la biblioteca IronXL para crear un libro de trabajo, agregar datos a las celdas de la hoja de trabajo usando una sintaxis simple como workSheet["A1"].Value = "Product" y guardar con workBook.SaveAs("file.csv") , lo que proporciona un enfoque sencillo para la exportación de datos.

Este artículo le muestra cómo escribir archivos CSV utilizando una biblioteca de C# llamada IronXL en un nuevo proyecto. La biblioteca IronXL proporciona una solución integral 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 escribo datos en un archivo CSV?

  1. Instale la biblioteca C# para escribir archivos CSV.

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

  3. Cree una hoja de trabajo utilizando WorkBook.CreateWorkSheet .

  4. Agregue valores a las celdas usando workSheet["cell name"].Value .

  5. Guárdelo como CSV utilizando el método SaveAs .

Estos pasos proporcionan la base para crear hojas de cálculo y exportar datos en varios formatos. El proceso es similar si trabajas con CSV, XLSX u otros formatos compatibles. Para escenarios más complejos, también puede importar datos de Excel y convertirlos entre diferentes tipos de archivos de hojas de cálculo .

¿Qué hace que IronXL sea la mejor opción para las operaciones CSV?

IronXL se 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 de desarrollo de software, la capacidad de manejar y manipular datos es esencial, y IronXL la cumple con su sólido conjunto de herramientas diseñado específicamente para C#.

La biblioteca destaca en varias áreas clave:

Este artículo explora las características y los 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. Ya sea que esté creando aplicaciones ASP.NET , trabajando con Blazor o desarrollando aplicaciones .NET MAUI , IronXL proporciona una funcionalidad consistente y confiable.

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

Para comenzar a utilizar la biblioteca IronXL, deberá crear un nuevo proyecto de Visual Studio C# o cargar uno 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 Archivo de Visual Studio con opciones como Nuevo, Abrir, Clonar repositorio y varias opciones para crear proyectos. Figura 1: El menú Archivo de Visual Studio con 'Nuevo > Proyecto' resaltado, que muestra el primer paso para crear un nuevo proyecto de C# para operaciones con archivos CSV

  2. En el menú lateral, busque y haga 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 con 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 para aplicaciones web o implementaciones en la nube .

    Cuadro de diálogo de nuevo proyecto de Visual Studio que muestra la plantilla de aplicación de consola seleccionada con opciones para C#, compatibilidad multiplataforma (Linux, macOS, Windows) y el marco .NET Core. 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. Ingrese el nombre del proyecto, especifique la ubicación del proyecto y haga clic en el botón Siguiente . Considere organizar sus proyectos en una estructura de carpetas dedicada, especialmente cuando trabaje con múltiples archivos de Excel o integraciones de bases de datos .

    Cuadro de diálogo de configuración del proyecto de Visual Studio que muestra la configuración de una nueva aplicación de consola llamada 'Hoja de cálculo' con opciones de plataforma para Linux, macOS, Windows y consola. Figura 3: Configure los nuevos ajustes del proyecto en Visual Studio, incluido el nombre del proyecto, la ubicación y las opciones de solución

  4. Aparece la ventana final. Seleccione el marco de destino e inicie el proceso de creación del proyecto haciendo clic en el botón Crear . Para una compatibilidad óptima con las características 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 proyecto de Visual Studio que muestra el paso de Información adicional con .NET 5.0 seleccionado como el marco de destino para una aplicación de consola Figura 4: Seleccione .NET 5.0 como el marco 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 CSV IronXL?

Ahora que ha configurado el proyecto, agreguemos la biblioteca C# IronXL. Sigue estos pasos para instalar IronXL:

  1. En Visual Studio, vaya al menú Herramientas. Aparece un menú desplegable: seleccione Administrador de paquetes NuGet en este menú. IronXL también se puede instalar a través de contenedores Docker para aplicaciones en contenedores.
  2. Dentro del Administrador de paquetes NuGet, elija Administrar paquetes NuGet para la solución en el menú lateral.

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

  3. Se abre una nueva ventana. Vaya a la pestaña Explorar y, en la barra de búsqueda, escriba "IronXL". Verá una lista de paquetes de IronXL; Seleccione el último y haga clic en el botón Instalar. La biblioteca admite varias operaciones, incluido el formato de celdas , la edición de fórmulas y el manejo de imágenes .

    El Administrador de paquetes NuGet muestra el paquete IronXL.Excel con la versión 2023.11.12 disponible para su instalación y registra 592 000 descargas. La interfaz del Administrador de paquetes NuGet en Visual Studio que muestra el paquete IronXL.Excel listo para ser instalado. Tenga en cuenta la última versión estable (2023.11.12) y la popularidad del paquete con más de 592 000 descargas.

Después de la instalación, asegúrese de que su clave de licencia esté configurada correctamente si está utilizando 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 usando IronXL?

Escribamos datos en un archivo CSV usando la biblioteca IronXL. En esta sección, crearemos un nuevo archivo CSV y lo completaremos con datos. El siguiente ejemplo usa IronXL para crear un recibo simple 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 Excel y los métodos de extensión LINQ del espacio de nombres System.Linq. LINQ es particularmente útil cuando se trabaja con rangos y se realizan operaciones matemáticas en datos de celdas.

¿Cómo creo un 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 trabajo de Excel (WorkBook) y una hoja de trabajo (WorkSheet) dentro de ese libro llamada "Recibo". También puede cargar hojas de cálculo existentes o abrir hojas de trabajo específicas para modificarlas. Para escenarios más complejos, considere administrar múltiples hojas de trabajo dentro de un solo libro.

¿Cuándo debo agregar 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 cruciales para la organización de datos y se pueden diseñar utilizando opciones de formato de celda, como tamaño de fuente, bordes y alineación . También puedes aplicar colores de fondo y patrones para que los encabezados se destaquen.

¿Cuál es la mejor manera de agregar 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 agregan información sobre tres artículos, incluidos sus nombres y precios. Para operaciones masivas, es posible que desee insertar varias filas a la vez o copiar celdas existentes . Al trabajar con grandes conjuntos de datos, considere utilizar la integración de DataTable para una manipulación de datos eficiente.

¿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

Usando 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 varias funciones agregadas, incluidas Promedio, Mínimo y Máximo. Para cálculos más complejos, puede utilizar fórmulas de Excel directamente en sus celdas.

¿Por qué actualizar los valores calculados en la 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 agrega a la celda B5 de la hoja de cálculo. Este enfoque garantiza la consistencia de los datos y permite el formato condicional basado en valores calculados. También puede agregar comentarios para explicar los cálculos o proporcionar contexto adicional.

¿Qué método guarda 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

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

Aquí está el ejemplo de código completo que demuestra todos los conceptos discutidos:

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 con IronXL, calcula el precio total, lo imprime en la consola y guarda el libro como archivo CSV. El recibo incluye las columnas "Producto" y "Precio", y calcula el precio total basándose en los precios de cada artículo. Las características adicionales como el tamaño automático de columnas y la congelación de paneles pueden mejorar el resultado final.

¡ Un archivo CSV llamado 'receipt.csv' abierto en un editor de texto mostraba un recibo simple con tres artículos, sus precios y un total de 45,85 Ejemplo de salida de un programa C# que escribe datos de recibos en un archivo CSV, incluida una fila de encabezado y valores separados por comas para productos y precios

¿Cuáles son los puntos clave?

Este artículo completo destaca la importancia de escribir archivos CSV en C# y explica el proceso utilizando la biblioteca IronXL. Se enfatiza la naturaleza fundamental de esta habilidad en varias aplicaciones centradas en datos y se 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 un archivo CSV, le proporciona una comprensión práctica de la integración perfecta entre las operaciones de C# y Excel.

Los principales beneficios de utilizar IronXL para operaciones CSV incluyen:

  • Simplicidad : API intuitiva que refleja la referencia de celdas de Excel
  • Flexibilidad : Compatibilidad con varios tipos de datos y formatos de números
  • Rendimiento : Manejo eficiente de grandes conjuntos de datos
  • Compatibilidad : funciona en todas las plataformas y versiones .NET
  • Funciones avanzadas : más allá de la escritura CSV, admite gráficos , rangos con nombre y tablas

Al ofrecer versatilidad y eficiencia, IronXL surge 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 lo convierte en un activo crucial para diversos escenarios de desarrollo de software.

IronXL proporciona una solución para que todas las tareas relacionadas con Excel se realicen de manera programada, ya sea cálculo de fórmulas , clasificación de cadenas , recorte , búsqueda y reemplazo, fusión y separación de archivos, guardado de archivos y más. También puede establecer formatos de datos de celdas , 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. Los recursos adicionales incluyen tutoriales sobre cómo leer archivos CSV y convertir DataTable a CSV .

IronXL ofrece una prueba gratuita, permitiéndole evaluar sus capacidades. Si lo encuentra útil para sus proyectos, puede comprar una licencia comenzando desde $799. La biblioteca también proporciona documentación completa, ejemplos de código y referencias de API para ayudarlo a comenzar 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