
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".
- Abre Visual Studio y haz clic en "Crear un Nuevo Proyecto".
Abrir Visual Studio
- Seleccione Aplicación de Consola y haga clic en "Siguiente".
Crear un nuevo proyecto en Visual Studio
- Asigne un nombre al proyecto
Configura tu nuevo proyecto
- Selecciona la versión de .NET. Elige la versión estable .NET 6.0.
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.
- Abra el Administrador de Paquetes NuGet desde el Explorador de Soluciones o herramientas.
Navegar a Administrador de Paquetes NuGet
- Busque la Biblioteca IronXL y seleccione el proyecto actual. Haz clic en instalar.
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;Imports IronXLCreate 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
Dim workBook As WorkBook = WorkBook.Create()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
Dim defaultSheet As WorkSheet = workBook.DefaultWorkSheet
' Creates a worksheet with the name "Sheet1"
Dim sheet As WorkSheet = workBook.CreateWorkSheet("Sheet1")Si desea agregar más hojas a su libro existente, entonces use el método CreateWorkSheet.
Note: You can use WorkBook.LoadCSV method if the CSV file already exists. 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
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 employeeEn el ejemplo de código anterior, se crea un arreglo de employeeNames, y la primera fila se establece con los encabezados: ID, Nombre, Salario. También se inicializa una variable i con el 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 añade a la fila actual con los valores ID y salario. Antes de que el bucle termine, se incrementa i para moverse 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 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", ",")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", ",");
}
}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 ClassProducción
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.

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.
Artículos Relacionados



