C# Leer archivo XLSX

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

Para leer archivos XLSX en C#, use el método WorkBook.Load de IronXL para abrir archivos de Excel y acceder a hojas de trabajo para leer datos de celdas, realizar cálculos y convertir a formatos DataTable o DataSet programáticamente.

Inicio rápido: Cargar un libro de trabajo y acceder a una hoja fácilmente

Con IronXL, puede cargar un archivo XLSX usando el método WorkBook.Load en una sola línea. Luego acceda a su primera hoja de trabajo nominada al instante y comience a leer valores de celdas.

  1. Instala IronXL con el Administrador de Paquetes NuGet

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

    IronXl.WorkBook workbook = IronXl.WorkBook.Load("your-file.xlsx");
  3. Despliegue para probar en su entorno real

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

    arrow pointer

Leer archivos .XLSX C#

  • Consigue IronXL para tu proyecto
  • Cargar un Libro de trabajo
  • Acceso a datos de una WorkSheet (hoja de trabajo)
  • Aplicar funciones como Suma, Mín y Máx.
  • Leer una WorkSheet como DataTable, DataSet, etc
How To Work related to C# Leer archivo XLSX

¿Cómo obtengo IronXL para mi proyecto?

Utilice IronXL en su proyecto como una forma sencilla de trabajar con formatos de archivo de Excel en C#. Puede instalar IronXL vía descarga directa o alternativamente puede usar NuGet Install para Visual Studio. El software es gratuito para el desarrollo.

Install-Package IronXL.Excel

Antes de sumergirse en la lectura de archivos XLSX, explore la completa documentación de IronXL para comprender todas las funciones disponibles. IronXL es compatible con los formatos .xls y .xlsx, lo que lo hace versátil para archivos Excel antiguos y modernos.


Tutorial de cómo hacerlo

¿Cómo se carga un libro de trabajo?

WorkBook es la clase de IronXL cuyo objeto proporciona acceso completo al archivo de Excel y todas sus funciones. Por ejemplo, para acceder a un archivo de Excel, utilice el código:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-load-workbook.cs
using IronXL;

// Load the workbook
WorkBook workBook = WorkBook.Load("sample.xlsx"); // Excel file path
Imports IronXL

' Load the workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx") ' Excel file path
$vbLabelText   $csharpLabel

¿Por qué usar el método WorkBook.Load()?

En el código anterior, la función Load() carga WorkBook en WorkBook. Cualquier tipo de función se puede realizar en WorkBook accediendo al WorkSheet específico de un archivo de Excel. El método Load() detecta automáticamente el formato de archivo, ya sea XLS, XLSX, XLSM, XLTX o CSV. Para escenarios de carga más avanzados, consulte la guía detallada sobre cargar hojas de cálculo.


¿Cómo accedo a una hoja de trabajo específica?

Para acceder a un WorkSheet específico de un archivo de Excel, IronXL proporciona la clase WorkBook. Puede utilizarse de varias maneras:

¿Cuáles son las distintas formas de acceder a una hoja de cálculo?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-get-worksheet.cs
using IronXL;

// Access sheet by name
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
Imports IronXL

' Access sheet by name
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
$vbLabelText   $csharpLabel

WorkBook["SheetName"] es el WorkSheet que se declara en la parte anterior.

O

WorkBook

O

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-worksheet-index.cs
using IronXL;

// Access sheet by index
WorkSheet workSheet = workBook.WorkSheets[0];
Imports IronXL

' Access sheet by index
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
$vbLabelText   $csharpLabel

O

WorkBook.Load()

O

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-default-worksheet.cs
using IronXL;

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
Imports IronXL

' Access the default worksheet
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
$vbLabelText   $csharpLabel

O

sample.xlsx

O

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-first-worksheet.cs
using IronXL;
using System.Linq;

// Access the first worksheet
WorkSheet workSheet = workBook.WorkSheets.First();
Imports IronXL
Imports System.Linq

' Access the first worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
$vbLabelText   $csharpLabel

O

workBook

O

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-first-or-default-worksheet.cs
using IronXL;
using System.Linq;

// Access the first or default worksheet
WorkSheet workSheet = workBook.WorkSheets.FirstOrDefault();
Imports IronXL
Imports System.Linq

' Access the first or default worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets.FirstOrDefault()
$vbLabelText   $csharpLabel

O

workBook

O

WorkBook.Load

O

WorkSheet

O

WorkSheet

O

workBook

O

WorkBook

¿Cuándo debo utilizar cada método de acceso a la hoja de cálculo?

Cada método tiene su caso de uso ideal:

  • GetWorkSheet("name"): Cuando conoces el nombre exacto de la hoja
  • WorkSheets[index]: Para iterar a través de hojas programáticamente
  • DefaultWorkSheet: Acceso rápido al trabajar con archivos de una sola hoja
  • First() o FirstOrDefault(): Opciones seguras cuando los nombres de las hojas podrían cambiar

Después de obtener ExcelSheet workSheet, puede obtener cualquier tipo de datos de él y realizar todas las funciones de Excel. Para operaciones más complejas con hojas de cálculo, consulte la guía sobre apertura de hojas de cálculo de Excel en C#.


¿Cómo accedo a los datos de una hoja de trabajo?

Los datos se pueden acceder desde ExcelSheet workSheet con este proceso:

¿Qué tipos de datos puedo leer de las celdas?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-get-data.cs
using IronXL;

// Accessing data as a string
string dataString = workSheet["A1"].ToString();

// Accessing data as an integer
int dataInt = workSheet["B1"].Int32Value;
Imports IronXL

' Accessing data as a string
Dim dataString As String = workSheet("A1").ToString()

' Accessing data as an integer
Dim dataInt As Integer = workSheet("B1").Int32Value
$vbLabelText   $csharpLabel

IronXL proporciona varios accesores de valor para diferentes tipos de datos:

  • StringValue: Para datos de texto
  • Int32Value: Para enteros
  • DoubleValue: Para decimales
  • DateTimeValue: Para fechas
  • BoolValue: Para valores verdadero/falso

¿Cómo puedo leer varias celdas a la vez?

También puede obtener datos de varias celdas de una columna específica:

foreach (var cell in workSheet["A2:A10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
foreach (var cell in workSheet["A2:A10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
For Each cell In workSheet("A2:A10")
	Console.WriteLine("Value is: {0}", cell.Text)
Next cell
$vbLabelText   $csharpLabel

Esto muestra los valores desde la celda A2 hasta A10. Para conocer técnicas más avanzadas de selección de rangos, visite el tutorial de selección de rangos.

¿Cómo es una implementación completa?

Aquí se proporciona un ejemplo de código completo de las especificaciones anteriores:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-log-data.cs
using IronXL;
using System;

// Load an Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Specify the range
foreach (var cell in workSheet["B2:B10"])
{
    Console.WriteLine("Value is: {0}", cell.Text);
}
Imports IronXL
Imports System

' Load an Excel file
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Specify the range
For Each cell In workSheet("B2:B10")
    Console.WriteLine("Value is: {0}", cell.Text)
Next
$vbLabelText   $csharpLabel

Muestra el siguiente resultado:

Salida de la consola que muestra los datos extraídos de la hoja de cálculo con los valores de Gobierno, Privado, Mercado Medio y Socios de Canal

Con el archivo de Excel Sample.xlsx:

Hoja de cálculo Excel con datos comerciales que muestra columnas de segmento, país, producto y banda de descuento en 16 filas

Estas metodologías muestran lo fácil que es utilizar datos de archivos Excel en tu proyecto. Para ver ejemplos prácticos de lectura de archivos de Excel sin Interop, explore la lectura de ejemplos de Excel.


¿Cómo puedo realizar funciones en los datos?

Acceda a datos filtrados desde un WorkSheet de Excel aplicando funciones agregadas como Sum, Min o Max usando el siguiente código:

¿Qué funciones agregadas están disponibles?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-aggregate-function.cs
using IronXL;

// Apply aggregate functions
decimal sum = workSheet["G2:G10"].Sum(); // Sum of cells from G2 to G10
decimal min = workSheet["G2:G10"].Min(); // Minimum value in cells from G2 to G10
decimal max = workSheet["G2:G10"].Max(); // Maximum value in cells from G2 to G10
Imports IronXL

' Apply aggregate functions
Dim sum As Decimal = workSheet("G2:G10").Sum() ' Sum of cells from G2 to G10
Dim min As Decimal = workSheet("G2:G10").Min() ' Minimum value in cells from G2 to G10
Dim max As Decimal = workSheet("G2:G10").Max() ' Maximum value in cells from G2 to G10
$vbLabelText   $csharpLabel

IronXL admite numerosas funciones matemáticas, entre las que se incluyen:

  • Average(): Calcular el valor medio
  • Count(): Contar celdas no vacías
  • CountIf(): Contar celdas que cumplen ciertos criterios
  • Median(): Encontrar el valor medio
  • StdDev(): Calcular la desviación estándar

¿Cómo puedo implementar varias funciones a la vez?

Para más detalles, consulte nuestro tutorial en profundidad sobre Cómo Escribir archivos de Excel en C# con información específica sobre funciones agregadas. También puedes explorar la lista completa de funciones matemáticas disponibles en IronXL.

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-min-max.cs
using IronXL;
using System;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Get the specified WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Calculate sum, minimum, and maximum for a range of cells
decimal sum = workSheet["G2:G10"].Sum();
decimal min = workSheet["G2:G10"].Min();
decimal max = workSheet["G2:G10"].Max();

// Output results
Console.WriteLine("Sum is: {0}", sum);
Console.WriteLine("Min is: {0}", min);
Console.WriteLine("Max is: {0}", max);
Imports IronXL
Imports System

' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Get the specified WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Calculate sum, minimum, and maximum for a range of cells
Dim sum As Decimal = workSheet("G2:G10").Sum()
Dim min As Decimal = workSheet("G2:G10").Min()
Dim max As Decimal = workSheet("G2:G10").Max()

' Output results
Console.WriteLine("Sum is: {0}", sum)
Console.WriteLine("Min is: {0}", min)
Console.WriteLine("Max is: {0}", max)
$vbLabelText   $csharpLabel

Este código muestra la siguiente salida:

Terminal que muestra los resultados del análisis de datos: Suma=482, Mín=12, Máx=350 sobre fondo negro

Y así es como se ve el archivo de Excel Sample.xlsx:

Hoja de cálculo Excel con datos de ventas que muestra segmentos, países, productos, unidades vendidas y precios en varias filas

¿Cómo leer Excel WorkSheet como DataTable?

Usando IronXL, es fácil trabajar con un WorkSheet de Excel como un DataTable. Esta función es especialmente útil cuando se necesita integrar datos de Excel con procesos de datos existentes o vincular datos a controles de interfaz de usuario.

¿Cuál es el método básico de conversión?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-datatable.cs
using IronXL;
using System.Data;

// Convert worksheet to DataTable
DataTable dt = workSheet.ToDataTable();
Imports IronXL
Imports System.Data

' Convert worksheet to DataTable
Dim dt As DataTable = workSheet.ToDataTable()
$vbLabelText   $csharpLabel

¿Cómo utilizo la primera fila como encabezado de columna?

Para usar la primera fila de ExcelSheet como DataTable ColumnName:

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-datatable-header.cs
using IronXL;
using System.Data;

// Convert worksheet to DataTable with the first row as column names
DataTable dt = workSheet.ToDataTable(true);
Imports IronXL
Imports System.Data

' Convert worksheet to DataTable with the first row as column names
Dim dt As DataTable = workSheet.ToDataTable(True)
$vbLabelText   $csharpLabel

El parámetro Booleano de ToDataTable() establece la primera fila como los nombres de las columnas de su DataTable. Por defecto, su valor es False. Esto es especialmente útil cuando se trabaja con datos estructurados que incluyen cabeceras.

¿Cómo itero a través de DataTable?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-print-datatable.cs
using IronXL;
using System;
using System.Data;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Get the specified WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");

// Convert WorkSheet to DataTable
DataTable dt = workSheet.ToDataTable(true); // Use first row as column names

// Iterate through rows and columns and display data
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();
}
Imports IronXL
Imports System
Imports System.Data

' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Get the specified WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Convert WorkSheet to DataTable
Dim dt As DataTable = workSheet.ToDataTable(True) ' Use first row as column names

' Iterate through rows and columns and display data
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
    Console.WriteLine()
Next
$vbLabelText   $csharpLabel

Usando el código anterior, se puede acceder a cada valor de celda de WorkSheet y usar como se requiera. Para operaciones más avanzadas de DataTable, vea la guía sobre importación y exportación como DataSet.


¿Cómo leer un archivo Excel como DataSet?

IronXL proporciona una función sencilla para usar un archivo de Excel completo (WorkBook) como un DataSet. Utilice el método ToDataSet para convertir todo el libro en DataSet.
En este ejemplo, veremos cómo usar el archivo de Excel como un DataSet.

¿Cómo convierto un libro de trabajo en DataSet?

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-excel-to-dataset.cs
using IronXL;
using System;
using System.Data;

// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Convert the WorkBook to a DataSet
DataSet ds = workBook.ToDataSet();

// Iterate through tables in the DataSet and display table names
foreach (DataTable dt in ds.Tables)
{
    Console.WriteLine(dt.TableName);
}
Imports IronXL
Imports System
Imports System.Data

' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Convert the WorkBook to a DataSet
Dim ds As DataSet = workBook.ToDataSet()

' Iterate through tables in the DataSet and display table names
For Each dt As DataTable In ds.Tables
    Console.WriteLine(dt.TableName)
Next
$vbLabelText   $csharpLabel

El resultado del código anterior es el siguiente:

Captura de pantalla corrupta o incompleta que solo muestra las etiquetas Hoja1, Hoja2, Hoja3

Y el archivo de Excel Sample.xlsx se ve así:

(center content omitted for brevity)

¿Cómo puedo acceder al valor de cada celda en todas las hojas de cálculo?

En el ejemplo anterior, podemos analizar fácilmente un archivo de Excel en un DataSet y trabajar con cada DataTable de un archivo de Excel como un DataTable. Profundice en cómo parse Excel as a DataSet aquí con ejemplos de código.

Veamos un ejemplo más de cómo acceder a cada valor de celda de todos los ExcelSheets. Aquí, podemos acceder a cada valor de celda de cada ExcelSheet de un archivo de Excel.

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-all-excel-sheets.cs
// ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
' ¡ESTE FRAGMENTO DE CÓDIGO NO ESTÁ DISPONIBLE!
$vbLabelText   $csharpLabel

Usando el ejemplo anterior, es conveniente acceder a cada valor de celda de cada ExcelSheet de un archivo de Excel. Este enfoque es particularmente útil al tratar con libros de trabajo de múltiples hojas donde los datos están distribuidos en diferentes pestañas.

Para más información sobre cómo Leer archivos Excel sin Interop consulta el código aquí. La documentación de referencia de la API proporciona detalles completos sobre todos los métodos y propiedades disponibles en IronXL API Reference.


Tutorial de acceso rápido

Referencia API para IronXL

Lea más sobre las características, clases, campos de métodos, espacios de nombres y enumeraciones de IronXL en la documentación.

Referencia API para IronXL
Documentation related to Tutorial de acceso rápido

WorkSheet

WorkSheet

WorkSheet

Preguntas Frecuentes

¿Cómo se leen los archivos XLSX en C#?

Para leer archivos XLSX en C#, utilice el método WorkBook.Load de IronXL. Simplemente cargue el archivo de Excel con IronXl.WorkBook.Load("your-file.xlsx"), luego acceda a las hojas de trabajo para leer datos de celdas, realizar cálculos y convertir a formatos DataTable o DataSet mediante programación.

¿Qué formatos de archivo se admiten al cargar archivos Excel?

IronXL admite varios formatos de archivo de Excel, incluidos los archivos .xls, .xlsx, .xlsm, .xltx y .csv. El método WorkBook.Load detecta automáticamente el formato de archivo, lo que lo hace versátil tanto para archivos Excel antiguos como modernos.

¿Cómo puedo instalar la biblioteca de lectura de Excel en mi proyecto de C#?

Puede instalar IronXL mediante descarga directa o a través de NuGet Install para Visual Studio. El software es gratuito para fines de desarrollo y proporciona una forma sencilla de trabajar con formatos de archivo Excel en C#.

¿Cuáles son las diferentes formas de acceder a una hoja de cálculo específica?

IronXL proporciona múltiples formas de acceder a las hojas de trabajo: puede utilizar workBook.GetWorkSheet("SheetName") para acceder por nombre, workBook.WorkSheets[0] para acceder por índice o workBook.WorkSheets.First() para obtener la primera hoja de trabajo.

¿Puedo realizar cálculos con los datos de Excel después de cargarlos?

Sí, después de cargar un archivo XLSX con IronXL, puede aplicar varias funciones como Suma, Mín y Máx en los datos. La biblioteca proporciona acceso completo a la funcionalidad de los archivos Excel a través del objeto WorkBook.

¿Es posible convertir datos de hojas de cálculo de Excel a otros formatos?

Sí, IronXL le permite leer una hoja de trabajo y convertirla a varios formatos, incluidos DataTable, DataSet y más. Esto facilita la integración de datos de Excel en sus aplicaciones de C#.

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,052,917 | Versión: 2026.6 just released
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.