USO DE IRONXL

Leer Archivo CSV Usando C# (Tutorial de Ejemplo de Código)

Chaknith Bin
Chaknith Bin
29 de junio, 2022
Actualizado 29 de enero, 2024
Compartir:

Este tutorial demuestra cómo leer un archivo CSV usando la librería IronXL C# sin instalar interoperabilidad adicional, de una manera altamente eficiente y efectiva.

Cómo leer archivos CSV en C#

Primero debe instalar IronXL antes de utilizarlo para leer archivos CSV en MVC, ASP.NET o .NET Core. He aquí un resumen básico del proceso.

Seleccione el menú Proyecto en Visual Studio, Administre Paquetes NuGet, busque IronXL.Excel e Instale.

Leer archivo CSV usando C# (ejemplo de código tutorial), Figura 1: Instalar el paquete IronXL en el Administrador de paquetes NuGet

Instala el paquete IronXL en el Administrador de Paquetes NuGet

IronXL es una herramienta excelente para usar cuando necesitas leer archivos CSV en C#. El siguiente ejemplo de código muestra que puede leer un archivo CSV utilizando comas u otro delimitador.

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("Csv_To_Excel.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
workbook.SaveAs("Csv_To_Excel.xlsx")
$vbLabelText   $csharpLabel

Leer archivo CSV usando C# (Ejemplo de código tutorial), Figura 2: Datos CSV para este tutorial

Datos CSV para este tutorial

Se crea el objeto WorkBook. El método LoadCSV del objeto WorkBook se utiliza para indicar el nombre del archivo CSV, su formato y los delimitadores utilizados en el archivo CSV que se está leyendo, los cuales se almacenan como un array de cadenas. Las comas se utilizan como delimitadores en este escenario.

Después de eso, se crea un objeto WorkSheet; aquí es donde se almacenará el contenido del archivo CSV. A continuación, se cambia el nombre del archivo y se almacena en un nuevo formato. A continuación, los datos del archivo CSV se ordenan en la hoja de cálculo en forma de tabla. El resultado será algo parecido a esto:

Leer archivo CSV usando C# (Ejemplo de código tutorial), Figura 3: Datos convertidos en archivo Excel

Datos convertidos en archivo Excel

Análisis sintáctico de CSV en C# .NET

Los archivos CSV tienen varios problemas relacionados con el manejo de los saltos de línea en los campos y cómo los campos pueden estar encerrados entre comillas, lo que impide que una técnica simple de división de cadenas funcione Split("'"). En su lugar, IronXL ofrece personalizar el delimitador utilizando el parámetro opcional del método LoadCSV, consulte la documentación de la API de LoadCSV para más detalles.

C# Registros - Lectura de datos CSV

En el ejemplo a continuación, se utiliza foreach para iterar sobre las filas en el archivo CSV, y se utiliza la Consola para escribir los datos en un registro.

WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  ");
    }
    Console.WriteLine();
}
WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
DataTable dt = ws.ToDataTable(true);//parse sheet1 of sample.xlsx file into datatable
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  ");
    }
    Console.WriteLine();
}
Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
Dim dt As DataTable = ws.ToDataTable(True) 'parse sheet1 of sample.xlsx file into datatable
For Each row As DataRow In dt.Rows 'access rows
	For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
		Console.Write(row (i) & "  ")
	Next i
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

Leer archivo CSV usando C# (Ejemplo de código y tutorial), Figura 4: Accediendo a datos desde archivo CSV y visualizándolos en la Consola

Accediendo a datos desde un archivo CSV y mostrando en la Consola

Conversión de una línea de archivo CSV a formato Excel

El procedimiento es sencillo: cargar un archivo CSV y guardarlo como archivo Excel.

WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;

workbook.SaveAs("CsvToExcelConversion.xlsx");
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;

workbook.SaveAs("CsvToExcelConversion.xlsx");
Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet

workbook.SaveAs("CsvToExcelConversion.xlsx")
$vbLabelText   $csharpLabel

Leer y manipular archivos CSV convertidos con IronXL

La clase WorkBook de IronXL representa una hoja de Excel y utiliza esta clase para abrir un archivo de Excel en C#. Los siguientes ejemplos de código cargarán el archivo Excel deseado en un objeto WorkBook:

//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
$vbLabelText   $csharpLabel

Los objetos WorkSheet se pueden encontrar en numerosos WorkBooks. Son las hojas de cálculo del documento Excel. Si el libro de trabajo tiene hojas de cálculo, puede obtenerlas por nombre haciendo lo siguiente:

//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
$vbLabelText   $csharpLabel

Código para leer los valores de las celdas:

// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from Ranges of cells elegantly.
foreach (var cell in worksheet ["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from Ranges of cells elegantly.
For Each cell In worksheet ("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

El siguiente ejemplo de código puede actualizar fórmulas o aplicarlas a celdas específicas después de cargar y leer el libro y la hoja de trabajo. El código es el siguiente:

// Set Formulas
worksheet ["A1"].Formula = "Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "Max(C3:C7)";

// Force recalculate all formula values in all sheets.  
workbook.EvaluateAll();
// Set Formulas
worksheet ["A1"].Formula = "Sum(B8:C12)";
worksheet ["B8"].Formula = "=C9/C11";
worksheet ["G30"].Formula = "Max(C3:C7)";

// Force recalculate all formula values in all sheets.  
workbook.EvaluateAll();
' Set Formulas
worksheet ("A1").Formula = "Sum(B8:C12)"
worksheet ("B8").Formula = "=C9/C11"
worksheet ("G30").Formula = "Max(C3:C7)"

' Force recalculate all formula values in all sheets.  
workbook.EvaluateAll()
$vbLabelText   $csharpLabel

Conclusión y oferta especial IronXL

IronXL transforma CSV a Excel con sólo dos líneas de código, además de procesar CSV en C#.

Sin necesidad de Interop, utilizar la API Excel de IronXL es pan comido. Además, IronXL también ofrece una amplia gama de características para interactuar con el nivel de Excel WorkBook, WorkSheet y Cells, como convertir entre formatos populares, formato de datos de celda, unir celdas, insertar funciones matemáticas, e incluso gestionar gráficos y añadir imágenes.

Puede iniciar sin una marca de agua utilizando claves de licencia de prueba de IronXL.

Las licencias comienzan en $749 e incluyen un año de soporte y actualizaciones gratuitos.

IronPDF, IronXL, IronOCR, IronBarcode y el IronWebscraper son todos parte de la suite de Iron Software. Iron Software le permite adquirir su paquete completo a un precio reducido. Puedes utilizar todas esas herramientas al precio de dos.

Sin duda, es una opción que merece la pena explorar.

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
< ANTERIOR
Cómo utilizar un analizador CSV en C#
SIGUIENTE >
C# Abrir Archivo Excel Programáticamente (Tutorial de Ejemplo de Código)