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 para .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 Archivos CSV en C#, Figura 1: Abrir Visual Studio Abrir Visual Studio

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

Cómo Escribir Datos en Archivos CSV en C#, Figura 2: Crear un nuevo proyecto en Visual Studio Crear un nuevo proyecto en Visual Studio

  1. Asigne un nombre al proyecto

Cómo Escribir Datos en Archivos CSV en C#, Figura 3: Configure su nuevo proyecto Configura tu nuevo proyecto

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

Cómo Escribir Datos en Archivos CSV en C#, Figura 4: Selección de .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 Archivos CSV en C#, Figura 5: Navegar al Administrador de Paquetes NuGet Navegar a Administrador de Paquetes NuGet

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

Cómo Escribir Datos en Archivos CSV en C#, Figura 6: Buscar e instalar el paquete IronXL en la UI del Administrador de Paquetes NuGet Buscar e instalar el paquete IronXL en la interfaz de usuario del administrador de paquetes NuGet

Agregue el siguiente espacio de nombres en la parte superior del archivo Program.cs:

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

Crear un nuevo libro de trabajo en 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();
' Creates a new instance of WorkBook Spreadsheet
Dim workBook As WorkBook = WorkBook.Create()
$vbLabelText   $csharpLabel

Ahora, vamos a crear 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");
' Adds a default sheet to the workbook
Dim defaultSheet As WorkSheet = workBook.DefaultWorkSheet

' Creates a worksheet with the name "Sheet1"
Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

Si desea agregar más hojas a su libro de trabajo existente, entonces use el método CreateWorkSheet.

Nota: Puede usar 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 la 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 agregar algunos registros de algunos empleados usando 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++;
}
' Initialize an array of employee names
Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }

' Starting row for data entry
Dim i As Integer = 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
For Each 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 += 1
Next employee
$vbLabelText   $csharpLabel

En el ejemplo de código anterior, se crea una matriz de employeeNames y la primera fila se establece con los encabezados: ID, Nombre, Salario. También se inicializa una variable i con un valor 2, que ingresará los registros desde la segunda fila debajo de los encabezados. El bucle foreach procesa cada empleado de la lista y los agrega a la fila actual con valores de ID y salario. Antes de que el bucle termine, i se incrementa para pasar a la siguiente fila para el 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 de trabajo 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", ",");
' 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", ",");
    }
}
Imports System
Imports IronXL

Friend Class Program
	Shared Sub Main()
		' Create a new workbook and worksheet
		Dim workBook As WorkBook = WorkBook.Create()
		Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")

		' Initialize an array of employee names
		Dim employeeNames() As String = { "John", "Peter", "Harry", "Kevin", "Brian" }

		' Starting row for data entry
		Dim i As Integer = 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
		For Each 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 += 1
		Next employee

		' Save the modified workbook as a CSV file with a specified delimiter
		workBook.SaveAsCsv("sample.csv", ",")
	End Sub
End Class
$vbLabelText   $csharpLabel

Producción

Cómo Escribir Datos en Archivos 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