Cómo leer archivos CSV en C# usando IronXL

Read a CSV File in C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXL proporciona una solución de una línea para leer archivos CSV en C# usando el método LoadCSV. Admite delimitadores personalizados y conversión directa a formatos de Excel para un procesamiento de datos fluido en aplicaciones .NET.

Inicio rápido: Cargue y convierta un archivo CSV usando IronXL en una línea

Este ejemplo muestra cómo leer un archivo CSV usando el método LoadCSV de IronXL y guardarlo como un libro de Excel con un código mínimo.

  1. Instala IronXL con el Administrador de Paquetes NuGet

    PM > Install-Package IronXL.Excel
  2. Copie y ejecute este fragmento de código.

    WorkBook wb = WorkBook.LoadCSV("data.csv", ExcelFileFormat.XLSX, listDelimiter: ","); wb.SaveAs("output.xlsx");
  3. Despliegue para probar en su entorno real

    Comienza a usar IronXL en tu proyecto hoy mismo con una prueba gratuita

    arrow pointer

Lectura de archivos CSV en aplicaciones .NET

  • Instalar una biblioteca C# para leer archivos CSV (IronXL)
  • Leer archivos CSV en C#
  • Especifique el formato de archivo y el delimitador
How To Work related to Read a CSV File in C

Paso 1

¿Cómo instalo la biblioteca IronXL?

Antes de utilizar IronXL para leer archivos CSV en MVC, ASP o .NET Core, es necesario instalarlo. He aquí un breve resumen.

¿Por qué debería usar NuGet Package Manager?

  • En Visual Studio, selecciona el menú Proyecto
  • Administrar paquetes NuGet
  • Buscar IronXL.Excel
  • Instalar
Administrador de paquetes NuGet de Visual Studio instalando la biblioteca IronXL.Excel con detalles del paquete y salida de consola
Figura 1 - Paquete NuGet IronXL.Excel

¿Cuáles son los métodos de instalación alternativos?

O descargar desde el sitio web de Iron Software: https://ironsoftware.com/csharp/excel/packages/IronXL.zip

Para los desarrolladores .NET que trabajan con contenedores Docker, IronXL puede configurarse en su entorno Docker. La biblioteca también admite la implementación en Azure Functions y AWS Lambda para el procesamiento de CSV basado en la nube.


Tutorial de cómo hacerlo

¿Cómo leer archivos CSV mediante programación?

¡Ahora para el proyecto!

¿Qué espacio de nombres necesito importar?

Agregar el espacio de nombres IronXL:

:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-file-2.cs
// This namespace is required to access the IronXL functionalities
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

¿Cómo cargar y convertir archivos CSV?

Agregue código para leer un archivo CSV mediante programación con IronXL y C#:

:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-read.cs
// Load the CSV file into a WorkBook object, specifying the file path, format, and delimiter
WorkBook workbook = WorkBook.LoadCSV("Read_CSV_Ex.csv", fileFormat: ExcelFileFormat.XLSX, listDelimiter: ",");

// Access the default worksheet within the loaded workbook
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file with a specified name
workbook.SaveAs("Csv_To_Excel.xlsx");
' Load the CSV file into a WorkBook object, specifying the file path, format, and delimiter
Dim workbook As WorkBook = WorkBook.LoadCSV("Read_CSV_Ex.csv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=",")

' Access the default worksheet within the loaded workbook
Dim ws As WorkSheet = workbook.DefaultWorkSheet

' Save the workbook as an Excel file with a specified name
workbook.SaveAs("Csv_To_Excel.xlsx")
$vbLabelText   $csharpLabel

¿Qué opciones avanzadas de lectura de CSV hay disponibles?

IronXL ofrece funciones para manejar archivos CSV con varias configuraciones. Puede especificar diferentes delimitadores (punto y coma, tabuladores, tuberías) y manejar archivos con diferentes codificaciones:

:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-file-4.cs
// Example: Reading CSV with custom delimiter
WorkBook workbook = WorkBook.LoadCSV("data.csv",
    fileFormat: ExcelFileFormat.XLSX,
    listDelimiter: ";");  // Using semicolon as delimiter

// Access specific cells after loading
var cellValue = workbook.DefaultWorkSheet["A1"].Value;

// Iterate through rows
foreach (var row in workbook.DefaultWorkSheet.Rows)
{
    // Process each row
    foreach (var cell in row)
    {
        Console.WriteLine(cell.Value);
    }
}
Imports System

' Example: Reading CSV with custom delimiter
Dim workbook As WorkBook = WorkBook.LoadCSV("data.csv", fileFormat:=ExcelFileFormat.XLSX, listDelimiter:=";") ' Using semicolon as delimiter

' Access specific cells after loading
Dim cellValue = workbook.DefaultWorkSheet("A1").Value

' Iterate through rows
For Each row In workbook.DefaultWorkSheet.Rows
    ' Process each row
    For Each cell In row
        Console.WriteLine(cell.Value)
    Next
Next
$vbLabelText   $csharpLabel

¿Qué aspecto tiene el archivo CSV antes de procesarlo?

Archivo CSV en el Bloc de notas que muestra datos de animales con las columnas Mes, Jirafas, Elefantes, Rinocerontes y 6 meses de datos de población
Figura 2 - Un archivo CSV abierto en el Bloc de notas

¿Cómo funciona el método LoadCSV?

Se crea un objeto Workbook. El método LoadCSV del objeto Workbook especifica el archivo CSV a leer, el formato en el que leerlo, y el delimitador. En este caso, se utiliza una coma como separador.

Se crea un objeto Worksheet donde se colocan los contenidos del CSV. El archivo se guarda con un nuevo nombre y formato. Este proceso es útil cuando se necesita convertir entre diferentes formatos de hojas de cálculo.

Hoja de cálculo Excel que muestra datos CSV con columnas para Mes, Jirafas, Elefantes y Rinocerontes con 6 meses de datos de recuento de animales
Figura 3 El archivo CSV abierto en Excel

¿Puedo procesar archivos CSV de gran tamaño de forma eficiente?

IronXL está optimizado para el rendimiento y maneja grandes archivos CSV de manera eficiente. Para los desarrolladores que trabajan con conjuntos de datos importantes, la biblioteca ofrece mejoras significativas del rendimiento en las versiones recientes. Al procesar archivos de gran tamaño, tenga en cuenta estas prácticas recomendadas:

:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-file-5.cs
// Reading large CSV files with memory optimization
WorkBook workbook = WorkBook.LoadCSV("large_dataset.csv", 
    fileFormat: ExcelFileFormat.XLSX, 
    listDelimiter: ",");

// Process data in chunks
var worksheet = workbook.DefaultWorkSheet;
int rowCount = worksheet.RowCount;
int batchSize = 1000;

for (int i = 0; i < rowCount; i += batchSize)
{
    // Process rows in batches
    var endIndex = Math.Min(i + batchSize, rowCount);
    for (int j = i; j < endIndex; j++)
    {
        var row = worksheet.GetRow(j);
        // Process individual row
    }
}
Imports System
Imports IronXL

' Reading large CSV files with memory optimization
Dim workbook As WorkBook = WorkBook.LoadCSV("large_dataset.csv", 
    fileFormat:=ExcelFileFormat.XLSX, 
    listDelimiter:=",")

' Process data in chunks
Dim worksheet = workbook.DefaultWorkSheet
Dim rowCount As Integer = worksheet.RowCount
Dim batchSize As Integer = 1000

For i As Integer = 0 To rowCount - 1 Step batchSize
    ' Process rows in batches
    Dim endIndex As Integer = Math.Min(i + batchSize, rowCount)
    For j As Integer = i To endIndex - 1
        Dim row = worksheet.GetRow(j)
        ' Process individual row
    Next
Next
$vbLabelText   $csharpLabel

¿Cómo puedo exportar datos CSV a otros formatos?

Después de leer los archivos CSV, es posible que tengas que exportar los datos a varios formatos. IronXL admite múltiples opciones de exportación, incluyendo conversión de XLSX a CSV, JSON, XML y HTML. A continuación se explica cómo exportar a distintos formatos:

:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-file-6.cs
// Load CSV and export to multiple formats
WorkBook workbook = WorkBook.LoadCSV("input.csv", ExcelFileFormat.XLSX, ",");

// Export to different formats
workbook.SaveAs("output.xlsx"); // Excel format
workbook.SaveAsJson("output.json"); // JSON format
workbook.SaveAsXml("output.xml"); // XML format

// Export specific worksheet to CSV with custom delimiter
workbook.DefaultWorkSheet.SaveAsCsv("output_custom.csv", ";");
Imports IronXL

' Load CSV and export to multiple formats
Dim workbook As WorkBook = WorkBook.LoadCSV("input.csv", ExcelFileFormat.XLSX, ","c)

' Export to different formats
workbook.SaveAs("output.xlsx") ' Excel format
workbook.SaveAsJson("output.json") ' JSON format
workbook.SaveAsXml("output.xml") ' XML format

' Export specific worksheet to CSV with custom delimiter
workbook.DefaultWorkSheet.SaveAsCsv("output_custom.csv", ";"c)
$vbLabelText   $csharpLabel

¿Qué hay de trabajar con datos CSV en aplicaciones web?

Para los desarrolladores de ASP.NET, IronXL proporciona una integración perfecta para leer archivos CSV en aplicaciones web. Puede cargar y procesar archivos CSV en sus proyectos MVC o Web API:

// Example: Processing uploaded CSV file in ASP.NET
public ActionResult UploadCSV(HttpPostedFileBase file)
{
    if (file != null && file.ContentLength > 0)
    {
        // Save uploaded file temporarily
        var fileName = Path.GetFileName(file.FileName);
        var path = Path.Combine(Server.MapPath("~/App_Data/"), fileName);
        file.SaveAs(path);

        // Load and process CSV
        WorkBook workbook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",");

        // Convert to DataTable for easy display
        var dataTable = workbook.DefaultWorkSheet.ToDataTable();

        // Clean up temporary file
        System.IO.File.Delete(path);

        return View(dataTable);
    }
    return RedirectToAction("Index");
}
// Example: Processing uploaded CSV file in ASP.NET
public ActionResult UploadCSV(HttpPostedFileBase file)
{
    if (file != null && file.ContentLength > 0)
    {
        // Save uploaded file temporarily
        var fileName = Path.GetFileName(file.FileName);
        var path = Path.Combine(Server.MapPath("~/App_Data/"), fileName);
        file.SaveAs(path);

        // Load and process CSV
        WorkBook workbook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",");

        // Convert to DataTable for easy display
        var dataTable = workbook.DefaultWorkSheet.ToDataTable();

        // Clean up temporary file
        System.IO.File.Delete(path);

        return View(dataTable);
    }
    return RedirectToAction("Index");
}
Imports System.IO
Imports System.Web
Imports IronXL

Public Function UploadCSV(file As HttpPostedFileBase) As ActionResult
    If file IsNot Nothing AndAlso file.ContentLength > 0 Then
        ' Save uploaded file temporarily
        Dim fileName As String = Path.GetFileName(file.FileName)
        Dim path As String = Path.Combine(Server.MapPath("~/App_Data/"), fileName)
        file.SaveAs(path)

        ' Load and process CSV
        Dim workbook As WorkBook = WorkBook.LoadCSV(path, ExcelFileFormat.XLSX, ",")

        ' Convert to DataTable for easy display
        Dim dataTable As DataTable = workbook.DefaultWorkSheet.ToDataTable()

        ' Clean up temporary file
        System.IO.File.Delete(path)

        Return View(dataTable)
    End If
    Return RedirectToAction("Index")
End Function
$vbLabelText   $csharpLabel

¿Cómo manejar archivos CSV con datos complejos?

Cuando se trabaja con archivos CSV que contienen fórmulas, caracteres especiales o tipos de datos mixtos, IronXL ofrece sólidas capacidades de manejo. Puede trabajar con fórmulas y formatear datos de celdas adecuadamente:

:path=/static-assets/excel/content-code-examples/how-to/csharp-read-csv-file-8.cs
// Handle CSV with special requirements
WorkBook workbook = WorkBook.LoadCSV("complex_data.csv", 
    ExcelFileFormat.XLSX, 
    listDelimiter: ",");

var worksheet = workbook.DefaultWorkSheet;

// Apply formatting to cells
worksheet["A1:A10"].Style.Font.Bold = true;
worksheet["B1:B10"].FormatString = "$#,##0.00"; // Currency format

// Add formulas after loading CSV data
worksheet["D1"].Formula = "=SUM(B1:B10)";
Imports IronXL

' Handle CSV with special requirements
Dim workbook As WorkBook = WorkBook.LoadCSV("complex_data.csv", ExcelFileFormat.XLSX, listDelimiter:=",")

Dim worksheet = workbook.DefaultWorkSheet

' Apply formatting to cells
worksheet("A1:A10").Style.Font.Bold = True
worksheet("B1:B10").FormatString = "$#,##0.00" ' Currency format

' Add formulas after loading CSV data
worksheet("D1").Formula = "=SUM(B1:B10)"
$vbLabelText   $csharpLabel

Acceso rápido a la biblioteca

Documentación de referencia de la API de IronXL

Obtenga más información y comparta cómo fusionar, separar y trabajar con celdas en hojas de cálculo de Excel utilizando la práctica documentación de referencia de API de IronXL.

Documentación de referencia de la API de IronXL
Documentation related to ¿Cómo manejar archivos CSV con datos complejos?

Preguntas Frecuentes

¿Cómo puedo leer archivos CSV en C# rápidamente?

IronXL proporciona una solución de una sola línea para leer archivos CSV en C# utilizando el método LoadCSV. Simplemente use: WorkBook wb = WorkBook.LoadCSV("data.csv", ExcelFileFormat.XLSX, listDelimiter: ","); Esto carga su archivo CSV y le permite guardarlo como un libro de Excel con wb.SaveAs("output.xlsx").

¿Qué métodos de instalación están disponibles para la biblioteca de lectura CSV?

Puedes instalar IronXL a través del gestor de paquetes NuGet en Visual Studio buscando 'IronXL.Excel', o descargarlo directamente desde el sitio web de Iron Software. La biblioteca también es compatible con contenedores Docker, Azure Functions y AWS Lambda para el procesamiento de CSV basado en la nube.

¿Puedo utilizar delimitadores personalizados al leer archivos CSV?

Sí, IronXL admite varios delimitadores, incluidos puntos y comas, tabulaciones y tuberías. Puede especificar el delimitador utilizando el parámetro listDelimiter en el método LoadCSV, por ejemplo WorkBook.LoadCSV("data.csv", ExcelFileFormat.XLSX, listDelimiter: ";").

¿Qué espacio de nombres debo importar para la función de lectura de CSV?

Debe agregar 'using IronXL;' en la parte superior de su archivo de C# para acceder a todas las funcionalidades de IronXL para leer y procesar archivos CSV.

¿Cómo puedo acceder a valores de celda específicos después de cargar un archivo CSV?

Después de cargar un archivo CSV con el método LoadCSV de IronXL, puede acceder a celdas específicas usando: var cellValue = workbook.DefaultWorkSheet["A1"].Value; Esto le permite recuperar y manipular datos de celdas individuales de su CSV cargado.

¿Es compatible la biblioteca con diferentes codificaciones de archivos al leer archivos CSV?

Sí, IronXL admite varias codificaciones, incluida UTF8. Puede especificar el parámetro de codificación al cargar archivos CSV: WorkBook.LoadCSV("data.csv", fileFormat: ExcelFileFormat.XLSX, encoding: Encoding.UTF8).

¿Puedo convertir archivos CSV a formato Excel directamente?

Sí, IronXL permite la conversión directa de formatos CSV a Excel. Después de cargar un archivo CSV con LoadCSV, puede guardarlo inmediatamente como un archivo de Excel utilizando el método SaveAs, especificando formatos como XLSX o XLS.

Curtis Chau
Escritor Técnico

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 ...

Leer más
¿Listo para empezar?
Nuget Descargas 2,134,203 | Versión: 2026.7 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronXL.Excel
ejecuta una muestra observa cómo tus datos se convierten en una hoja de cálculo.