Saltar al pie de página
USANDO IRONXL

Cómo escribir datos en un archivo CSV en C#

Este artículo explorará cómo escribir un archivo CSV usando IronXL.

Biblioteca IronXL

IronXL es una biblioteca de Excel for .NET que ofrece una funcionalidad integral para crear, leer y editar archivos de hojas de cálculo en aplicaciones C#. Destaca en términos de rendimiento y precisión de salida. Admite varios formatos de archivo de libros de trabajo de hojas de cálculo como XLS, XLSX, XLSM, CSV y TSV. Además, permite guardar o exportar datos de archivos de Excel a formatos como CSV, JSON, HTML, Binario, Matriz de Bytes, DataSet o DataTable.

Con IronXL, los desarrolladores pueden trabajar sin problemas con hojas de trabajo y rangos de celdas, proporcionando un enfoque elegante para manipular datos. Permite la edición fácil de fórmulas y facilita el recálculo de fórmulas dentro de una hoja. Ordenar datos basado en rango, columna o fila es sencillo. También puede modificar diseños congelando paneles, autoajustando filas/columnas y agregando/eliminando filas/columnas.

IronXL ofrece la capacidad de proteger archivos de Excel con contraseñas de usuario y establecer permisos para la edición. Además, proporciona características para agregar, eliminar y extraer imágenes de hojas de trabajo de Excel. La biblioteca incluye una amplia gama de funciones de Excel, admitiendo varios formatos de datos de celda. Esto hace que IronXL sea una de las APIs más intuitivas para trabajar con archivos de Excel.

Una ventaja notable de IronXL es que no requiere que Microsoft Excel o dependencias de Office Interop estén instaladas en la máquina. Es una solución autosuficiente que funciona en múltiples plataformas y es compatible con las versiones .NET 7, 6 y 5. También admite .NET Core 2 y 3, así como la versión estándar 2. Para trabajar con hojas de cálculo de Excel, IronXL es compatible con .NET Framework 4.5 y versiones posteriores.

Crear una aplicación de consola

Se recomienda la última versión de Visual Studio para crear una aplicación para comenzar. Visual Studio es el IDE oficial para el desarrollo en C#, y debe tenerlo instalado. Puede descargarlo desde el sitio web de Microsoft Visual Studio, si no está instalado.

Los siguientes pasos crearán un nuevo proyecto llamado "DemoApp".

  1. Abre Visual Studio y haz clic en "Crear un Nuevo Proyecto".

    Cómo escribir datos en un archivo CSV en C#, Figura 1: Abrir Visual Studio Abrir Visual Studio

  2. Seleccione Aplicación de Consola y haga clic en "Siguiente".

    Cómo escribir datos en un archivo CSV en C#, Figura 2: Crear un nuevo proyecto en Visual Studio Crear un nuevo proyecto en Visual Studio

  3. Asigne un nombre al proyecto

    Cómo escribir datos en un archivo CSV en C#, Figura 3: Configure su nuevo proyecto Configura tu nuevo proyecto

  4. Selecciona la versión de .NET. Elige la versión estable .NET 6.0.

    Cómo escribir datos en un archivo CSV en C#, Figura 4: Selección del .NET Framework Selección del .NET Framework

Instalar la biblioteca IronXL

Una vez creado el proyecto, se necesita instalar la biblioteca IronXL en el proyecto para usarla. Sigue estos pasos para instalarla.

  1. Abra el Administrador de Paquetes NuGet desde el Explorador de Soluciones o herramientas.

    Cómo escribir datos en un archivo CSV en C#, Figura 5: Acceder al Administrador de paquetes de NuGet Navegar a Administrador de Paquetes NuGet

  2. Busque la Biblioteca IronXL y seleccione el proyecto actual. Haz clic en instalar.

    Cómo escribir datos en un archivo CSV en C#, Figura 6: Buscar e instalar el paquete IronXL en la interfaz de usuario del Gestor de paquetes NuGet Buscar e instalar el paquete IronXL en la interfaz de usuario del administrador de paquetes NuGet

Añade el siguiente espacio de nombres al principio del archivo Program.cs:

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

Create a New Workbook in C

IronXL proporciona la facilidad de crear un libro de trabajo vacío. Un libro de trabajo es una hoja de cálculo que contiene múltiples hojas de trabajo. Los datos se almacenan en celdas. CSV también se parece a una hoja de cálculo, pero en su lugar con una extensión de archivo CSV.

// Creates a new instance of WorkBook Spreadsheet
WorkBook workBook = WorkBook.Create();
// Creates a new instance of WorkBook Spreadsheet
WorkBook workBook = WorkBook.Create();
$vbLabelText   $csharpLabel

Ahora, creemos una hoja en el WorkBook. Hay múltiples formas de crear una hoja de trabajo en el libro de trabajo.

// Adds a default sheet to the workbook
WorkSheet defaultSheet = workBook.DefaultWorkSheet;

// Creates a worksheet with the name "Sheet1"
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
// Adds a default sheet to the workbook
WorkSheet defaultSheet = workBook.DefaultWorkSheet;

// Creates a worksheet with the name "Sheet1"
WorkSheet sheet = workBook.CreateWorkSheet("Sheet1");
$vbLabelText   $csharpLabel

Si desea añadir más hojas a su libro de trabajo existente, utilice el método CreateWorkSheet.

Nota: Puede utilizar el método WorkBook.LoadCSV si el archivo CSV ya existe. Puede ver esta página de ejemplo de código para cargar un archivo CSV existente.

Escribir datos en el WorkSheet

Escribir archivos CSV es fácil usando IronXL. Proporciona características de Excel para escribir datos en CSVs. Las referencias de celda se pueden usar para agregar los valores en ubicaciones específicas. Aquí voy a añadir algunos registros de empleados utilizando un bucle foreach.

// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

// Starting row for data entry
int i = 2;

// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";

// Populate each row with employee data
foreach (var employee in employeeNames)
{
    // Set values for ID, Name, and Salary
    sheet["A" + i].Value = i;
    sheet["B" + i].Value = employee;
    sheet["C" + i].Value = i * 1000;
    i++;
}
// Initialize an array of employee names
string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

// Starting row for data entry
int i = 2;

// Setting header titles for the columns
sheet["A1"].Value = "ID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Salary";

// Populate each row with employee data
foreach (var employee in employeeNames)
{
    // Set values for ID, Name, and Salary
    sheet["A" + i].Value = i;
    sheet["B" + i].Value = employee;
    sheet["C" + i].Value = i * 1000;
    i++;
}
$vbLabelText   $csharpLabel

En el ejemplo de código anterior, se crea una matriz de employeeNames y la primera fila se configura con los encabezados: ID, Nombre, Salario. La variable i también se inicializa con el valor 2, lo que introducirá los registros de la segunda fila por debajo de los encabezados. El bucle foreach procesa a cada empleado de la lista y lo añade a la fila actual con los valores de ID y salario. Antes de que finalice el bucle, i se incrementa para pasar a la siguiente fila del siguiente registro.

Guardar los datos en un archivo CSV

El último paso es guardar el archivo CSV. IronXL proporciona el método SaveAsCsv para guardar el libro como un archivo CSV. El primer parámetro de este método es el nombre del archivo CSV y el segundo es el delimitador.

// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
// Save the modified workbook as a CSV file with a specified delimiter
workBook.SaveAsCsv("sample.csv", ",");
$vbLabelText   $csharpLabel

El código completo es el siguiente:

using System;
using IronXL;

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

        // Initialize an array of employee names
        string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

        // Starting row for data entry
        int i = 2;

        // Setting header titles for the columns
        sheet["A1"].Value = "ID";
        sheet["B1"].Value = "Name";
        sheet["C1"].Value = "Salary";

        // Populate each row with employee data
        foreach (var employee in employeeNames)
        {
            // Set values for ID, Name, and Salary
            sheet["A" + i].Value = i;
            sheet["B" + i].Value = employee;
            sheet["C" + i].Value = i * 1000;
            i++;
        }

        // Save the modified workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("sample.csv", ",");
    }
}
using System;
using IronXL;

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

        // Initialize an array of employee names
        string[] employeeNames = { "John", "Peter", "Harry", "Kevin", "Brian" };

        // Starting row for data entry
        int i = 2;

        // Setting header titles for the columns
        sheet["A1"].Value = "ID";
        sheet["B1"].Value = "Name";
        sheet["C1"].Value = "Salary";

        // Populate each row with employee data
        foreach (var employee in employeeNames)
        {
            // Set values for ID, Name, and Salary
            sheet["A" + i].Value = i;
            sheet["B" + i].Value = employee;
            sheet["C" + i].Value = i * 1000;
            i++;
        }

        // Save the modified workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("sample.csv", ",");
    }
}
$vbLabelText   $csharpLabel

Producción

Cómo escribir datos en un archivo CSV en C#, Figura 7: El archivo CSV de salida El archivo CSV de salida

Resumen

Este artículo presenta un enfoque simple para escribir un archivo CSV usando IronXL en C#. IronXL también proporciona la facilidad para trabajar con archivos CSV existentes sin ninguna complicación. También le permite escribir archivos CSV, crear nuevos archivos de Excel y escribir datos en ellos con una sintaxis simple. IronXL también se puede usar para leer y escribir archivos de Excel sin tener instalado Microsoft Office. Para la conversión entre diferentes formatos de hojas de cálculo, puede ver esta página de ejemplo de código.

IronXL es gratuito para el desarrollo y se puede licenciar para uso comercial. También puede probar la prueba gratuita de IronXL para uso comercial.

Preguntas Frecuentes

¿Cómo puedo escribir datos en un archivo CSV en C#?

Puedes usar el método `SaveAsCsv` de IronXL para exportar datos a un archivo CSV en C#. Primero, crea un libro y hoja de trabajo, escribe datos en las celdas y luego usa `workBook.SaveAsCsv("filename.csv", ",");` para guardar los datos como un archivo CSV.

¿Cuáles son los pasos para crear una aplicación de consola para escribir archivos CSV en C#?

Para crear una aplicación de consola para escribir archivos CSV, configura un nuevo proyecto en Visual Studio, selecciona la versión .NET adecuada e instala IronXL a través del Administrador de Paquetes NuGet. Luego, usa IronXL para crear un libro, agregar datos a una hoja de trabajo y guardarlo como un CSV.

¿Puedo escribir datos en un archivo CSV sin usar Microsoft Excel?

Sí, puedes escribir datos en un archivo CSV sin Microsoft Excel utilizando IronXL. Permite la manipulación de archivos Excel y CSV de manera programática sin necesidad de tener Excel instalado.

¿Cómo instalo IronXL en un proyecto de Visual Studio?

Puedes instalar IronXL abriendo el Administrador de Paquetes NuGet en Visual Studio, buscando 'IronXL' y haciendo clic en 'Instalar' para agregarlo a tu proyecto. Esto te permitirá usar las funcionalidades de IronXL para manejar archivos Excel y CSV.

¿Qué formatos de archivo admite IronXL para exportar?

IronXL admite la exportación de datos a varios formatos, incluidos CSV, JSON, HTML, Binario, Matriz de Bytes, DataSet y DataTable, haciéndolo versátil para diferentes necesidades de manejo de datos.

¿Es compatible IronXL con diferentes versiones de .NET?

Sí, IronXL es compatible con múltiples versiones de .NET, incluidas .NET Core 2 y 3, así como .NET 5, 6 y 7, permitiendo a los desarrolladores flexibilidad en diferentes entornos de desarrollo.

¿Puedo usar IronXL para proyectos comerciales?

Sí, IronXL se puede licenciar para fines comerciales. También ofrece una prueba gratuita para el uso en desarrollo, permitiendo a los desarrolladores probar sus características antes de comprometerse con una licencia comercial.

¿Cómo creo un nuevo libro y hoja de trabajo en C# usando IronXL?

Puedes crear un nuevo libro y hoja de trabajo usando `WorkBook.Create()` para inicializar un objeto de libro y luego agregar una nueva hoja de trabajo a él. Esto te permitirá comenzar a escribir datos en la hoja de trabajo.

¿Requiere IronXL alguna dependencia de Office Interop?

No, IronXL es una biblioteca independiente que no requiere ninguna dependencia de Office Interop, lo que la hace fácil de usar e implementar en aplicaciones en diferentes plataformas.

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