Cómo importar archivos de Excel en C

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

Como desarrolladores, a menudo necesitamos importar datos de archivos de Excel y utilizarlos para satisfacer los requisitos de nuestra aplicación y gestión de datos. Sin requerir muchas líneas de código, IronXL nos ofrece una forma fácil de importar exactamente los datos que necesitamos directamente en un proyecto C# y luego manipularlos por programación.

Inicio rápido: Carga instantánea de su archivo de Excel

Con solo una llamada al método usando la API sin tiempo de espera de IronXL, puedes cargar cualquier hoja de Excel compatible (XLSX, CSV, etc.) en segundos: sin Interop, sin complicaciones. Comienza a interactuar con el libro de trabajo inmediatamente accediendo a celdas, rangos o hojas según sea necesario.

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronXL con el gestor de paquetes NuGet

    PM > Install-Package IronXL.Excel

  2. Copie y ejecute este fragmento de código.

    WorkBook wb = IronXL.WorkBook.Load("path/to/data.xlsx");
  3. Despliegue para probar en su entorno real

    Empieza a utilizar IronXL en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

Importar datos de Excel C#

  • Importar datos con la biblioteca IronXL
  • Importar datos de Excel en C#
  • Importar datos de un rango de celdas específico
  • Importar datos de Excel con funciones agregadas SUMA, AVG, MIN, MAX y más
How To Work related to Cómo importar archivos de Excel en C

Paso 1

1. Importar datos con la biblioteca IronXL

Importar datos usando las funciones proporcionadas por la biblioteca de Excel de IronXL, que utilizaremos en este tutorial. El software está disponible de forma gratuita para el desarrollo.

Instale en su proyecto C# vía descarga de DLL o navegue usando el paquete NuGet.

Install-Package IronXL.Excel

Tutorial de cómo hacerlo

2. Acceder a la hoja de trabajo para el proyecto

Para las necesidades de nuestro proyecto hoy, importaremos datos de Excel en nuestra aplicación C# usando el software IronXL instalado en el paso 1.

Para el paso 2, cargaremos nuestro libro de trabajo de Excel en nuestro proyecto CSharp utilizando la función WorkBook.Load() de IronXL. Pasamos la ruta del libro de trabajo de Excel como un parámetro de cadena en esta función, de esta manera:

// Load Excel file
WorkBook wb = WorkBook.Load("Path");
// Load Excel file
WorkBook wb = WorkBook.Load("Path");
' Load Excel file
Dim wb As WorkBook = WorkBook.Load("Path")
$vbLabelText   $csharpLabel

El archivo de Excel en la ruta especificada se cargará en wb.

A continuación, necesitamos acceder a una hoja de trabajo específica del archivo de Excel cuyos datos se importarán al proyecto. Para este propósito, podemos utilizar la función GetWorkSheet() de IronXL, pasando el nombre de la hoja como un parámetro de cadena para especificar qué hoja del libro de trabajo importar.

// Specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
// Specify sheet name of Excel WorkBook
WorkSheet ws = wb.GetWorkSheet("SheetName");
' Specify sheet name of Excel WorkBook
Dim ws As WorkSheet = wb.GetWorkSheet("SheetName")
$vbLabelText   $csharpLabel

La hoja de trabajo será importada como ws, y wb es el libro de trabajo que hemos definido en el ejemplo de código anterior.

También hay las siguientes formas alternativas de importar una hoja de trabajo de Excel al proyecto.

// Import WorkSheet by various methods

// by sheet indexing
WorkSheet mySheet = wb.WorkSheets[SheetIndex];

// get default WorkSheet
WorkSheet defaultSheet = wb.DefaultWorkSheet;

// get first WorkSheet
WorkSheet firstSheet = wb.WorkSheets.First();

// for the first or default sheet
WorkSheet firstOrDefaultSheet = wb.WorkSheets.FirstOrDefault();
// Import WorkSheet by various methods

// by sheet indexing
WorkSheet mySheet = wb.WorkSheets[SheetIndex];

// get default WorkSheet
WorkSheet defaultSheet = wb.DefaultWorkSheet;

// get first WorkSheet
WorkSheet firstSheet = wb.WorkSheets.First();

// for the first or default sheet
WorkSheet firstOrDefaultSheet = wb.WorkSheets.FirstOrDefault();
' Import WorkSheet by various methods

' by sheet indexing
Dim mySheet As WorkSheet = wb.WorkSheets(SheetIndex)

' get default WorkSheet
Dim defaultSheet As WorkSheet = wb.DefaultWorkSheet

' get first WorkSheet
Dim firstSheet As WorkSheet = wb.WorkSheets.First()

' for the first or default sheet
Dim firstOrDefaultSheet As WorkSheet = wb.WorkSheets.FirstOrDefault()
$vbLabelText   $csharpLabel

Ahora, podemos importar fácilmente cualquier tipo de datos de los archivos de Excel especificados. Veamos todos los aspectos posibles que utilizamos para importar datos de archivos de Excel en nuestro proyecto.


3. Importar datos de Excel en C

Este es el aspecto básico de importar datos de archivos de Excel en nuestro proyecto.

Para este propósito, podemos usar un sistema de direccionamiento de celdas para especificar qué datos de celda necesitamos importar. Devolverá el valor de una dirección de celda específica del archivo de Excel.

var cellValue = ws["Cell Address"];
var cellValue = ws["Cell Address"];
Dim cellValue = ws("Cell Address")
$vbLabelText   $csharpLabel

También podemos importar datos de celdas de archivos de Excel usando índices de fila y columna. Esta línea de código devolverá el valor del índice de fila y columna especificado.

var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];
var cellValueByIndex = ws.Rows[RowIndex].Columns[ColumnIndex];
Dim cellValueByIndex = ws.Rows(RowIndex).Columns(ColumnIndex)
$vbLabelText   $csharpLabel

Si queremos asignar valores de celda importados a variables, podemos usar este código.

// Import Data by Cell Address
// by cell addressing
string val = ws["Cell Address"].ToString();

// by row and column indexing
string valWithIndexing = ws.Rows[RowIndex].Columns[ColumnIndex].Value.ToString();
// Import Data by Cell Address
// by cell addressing
string val = ws["Cell Address"].ToString();

// by row and column indexing
string valWithIndexing = ws.Rows[RowIndex].Columns[ColumnIndex].Value.ToString();
' Import Data by Cell Address
' by cell addressing
Dim val As String = ws("Cell Address").ToString()

' by row and column indexing
Dim valWithIndexing As String = ws.Rows(RowIndex).Columns(ColumnIndex).Value.ToString()
$vbLabelText   $csharpLabel

En los ejemplos anteriores, el índice de fila y columna comienza en 0.


4. Importar datos de Excel de un rango específico

Si queremos importar datos en un rango específico de un libro de trabajo de Excel, se puede hacer fácilmente usando la función range. Para definir el rango, necesitamos describir las direcciones de celda de inicio y fin. De esta manera, devolverá todos los valores de celda dentro del rango especificado.

var rangeData = ws["Starting Cell Address:Ending Cell Address"];
var rangeData = ws["Starting Cell Address:Ending Cell Address"];
Dim rangeData = ws("Starting Cell Address:Ending Cell Address")
$vbLabelText   $csharpLabel

Para obtener más información sobre cómo trabajar con rango en archivos de Excel, consulte los ejemplos de código proporcionados.

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-import.cs
using IronXL;
using System;

// Import Excel WorkBook
WorkBook wb = WorkBook.Load("sample.xlsx");

// Specify WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Import data of specific cell
string val = ws["A4"].Value.ToString();
Console.WriteLine("Import Value of A4 Cell address: {0}", val);

Console.WriteLine("import Values in Range From B3 To B9 :\n");

// Import data in specific range
foreach (var item in ws["B3:B9"])
{
    Console.WriteLine(item.Value.ToString());
}

Console.ReadKey();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

El código anterior muestra la siguiente salida:

1output related to 4. Importar datos de Excel de un rango específico

Con los valores del archivo de Excel sample.xlsx como:

1excel related to 4. Importar datos de Excel de un rango específico

5. Importar datos de Excel mediante funciones agregadas

También podemos aplicar funciones de agregado a archivos de Excel e importar los datos resultantes de estas funciones de agregado. Aquí hay algunos ejemplos de las diferentes funciones y cómo usarlas.

  • Sum()

    // To find the sum of a specific cell range
    var sum = ws["Starting Cell Address:Ending Cell Address"].Sum();
    // To find the sum of a specific cell range
    var sum = ws["Starting Cell Address:Ending Cell Address"].Sum();
    ' To find the sum of a specific cell range
    Dim sum = ws("Starting Cell Address:Ending Cell Address").Sum()
    $vbLabelText   $csharpLabel
  • Average()

    // To find the average of a specific cell range
    var average = ws["Starting Cell Address:Ending Cell Address"].Avg();
    // To find the average of a specific cell range
    var average = ws["Starting Cell Address:Ending Cell Address"].Avg();
    ' To find the average of a specific cell range
    Dim average = ws("Starting Cell Address:Ending Cell Address").Avg()
    $vbLabelText   $csharpLabel
  • Min()

    // To find the minimum in a specific cell range
    var minimum = ws["Starting Cell Address:Ending Cell Address"].Min();
    // To find the minimum in a specific cell range
    var minimum = ws["Starting Cell Address:Ending Cell Address"].Min();
    ' To find the minimum in a specific cell range
    Dim minimum = ws("Starting Cell Address:Ending Cell Address").Min()
    $vbLabelText   $csharpLabel
  • Max()

    // To find the maximum in a specific cell range
    var maximum = ws["Starting Cell Address:Ending Cell Address"].Max();
    // To find the maximum in a specific cell range
    var maximum = ws["Starting Cell Address:Ending Cell Address"].Max();
    ' To find the maximum in a specific cell range
    Dim maximum = ws("Starting Cell Address:Ending Cell Address").Max()
    $vbLabelText   $csharpLabel

Puedes leer más sobre cómo trabajar con funciones de agregado en Excel para C# y aprender más sobre cómo extraer datos de diferentes métodos.

Veamos un ejemplo de cómo importar datos de archivos de Excel aplicando estas funciones.

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-math-functions.cs
using IronXL;
using System;

// Import Excel file
WorkBook wb = WorkBook.Load("sample.xlsx");

// Specify WorkSheet
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Import Excel file data by applying aggregate functions
decimal sum = ws["D2:D9"].Sum();
decimal avg = ws["D2:D9"].Avg();
decimal min = ws["D2:D9"].Min();
decimal max = ws["D2:D9"].Max();

Console.WriteLine("Sum From D2 To D9: {0}", sum);
Console.WriteLine("Avg From D2 To D9: {0}", avg);
Console.WriteLine("Min From D2 To D9: {0}", min);
Console.WriteLine("Max From D2 To D9: {0}", max);

Console.ReadKey();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

El código anterior nos da este resultado:

2output related to 5. Importar datos de Excel mediante funciones agregadas

Y nuestro archivo sample.xlsx tendrá estos valores:

2excel related to 5. Importar datos de Excel mediante funciones agregadas

6. Importar datos completos del archivo Excel

Si queremos importar todos los datos de un archivo de Excel en nuestro proyecto C#, primero podemos analizar nuestro libro de trabajo cargado en un DataSet. De esta manera, todos los datos de Excel serían importados al DataSet, y las hojas de trabajo en archivos de Excel se convierten en tablas de datos dentro de ese DataSet. Aquí está en acción:

// Import WorkBook into DataSet
DataSet ds = wb.ToDataSet();
// Import WorkBook into DataSet
DataSet ds = wb.ToDataSet();
' Import WorkBook into DataSet
Dim ds As DataSet = wb.ToDataSet()
$vbLabelText   $csharpLabel

De esta manera, nuestra hoja de trabajo especificada será importada a un DataSet que podemos usar según nuestros requisitos.

A menudo, la primera columna de un archivo de Excel se utiliza como ColumnName. En este caso, necesitamos hacer que la primera columna sea un ColumnName del DataTable. Para hacer esto, configuramos el parámetro booleano de la función ToDataSet() de IronXL como sigue:

// Import WorkBook into DataSet with first row as ColumnNames
DataSet ds = wb.ToDataSet(true);
// Import WorkBook into DataSet with first row as ColumnNames
DataSet ds = wb.ToDataSet(true);
' Import WorkBook into DataSet with first row as ColumnNames
Dim ds As DataSet = wb.ToDataSet(True)
$vbLabelText   $csharpLabel

Esto hará que la primera columna del archivo de Excel sea un ColumnName del DataTable.

Veamos un ejemplo completo de cómo importar datos de Excel a un DataSet y usar la primera columna de una hoja de trabajo de Excel como un ColumnName del DataTable:

:path=/static-assets/excel/content-code-examples/how-to/csharp-import-excel-dataset.cs
using IronXL;
using System;
using System.Data;

WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Import Excel data into a DataSet
DataSet ds = wb.ToDataSet(true);

Console.WriteLine("Excel file data imported to dataset successfully.");
Console.ReadKey();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Trabajar con funciones de DataSet y Datatable de Excel puede ser complicado, pero tenemos más ejemplos disponibles para incorporar datos de archivos en tu proyecto C#.


Acceso rápido a la biblioteca

Explora la referencia IronXL

Obtenga más información sobre cómo extraer datos de Excel a través de celdas, rangos, conjuntos de datos y tablas de datos en nuestra documentación completa Referencia de API para IronXl.

Explora la referencia IronXL
Documentation related to Acceso rápido a la biblioteca

Preguntas Frecuentes

¿Cómo puedo importar archivos Excel en C# sin usar Interop?

Puede usar IronXL para importar archivos Excel en C# sin Interop. Simplemente use el método WorkBook.Load() para cargar su archivo y acceder a los datos a través de varias funciones como GetWorkSheet().

¿Cómo instalo la biblioteca IronXL en un proyecto C#?

Instale IronXL a través de NuGet ejecutando el comando Install-Package IronXL.Excel en la consola del Administrador de paquetes, o descargue el DLL directamente desde el sitio web de IronXL.

¿Qué métodos están disponibles para acceder a hojas de trabajo específicas en IronXL?

Puede acceder a hojas de trabajo específicas en IronXL utilizando el método GetWorkSheet() proporcionando el nombre de la hoja como argumento.

¿Cómo importo datos de un rango específico de celdas en C#?

Con IronXL, puede importar datos de un rango específico de celdas definiendo las direcciones de las celdas de inicio y fin dentro de la función de rango, permitiendo una manipulación precisa de los datos.

¿Cuáles son los beneficios de usar IronXL para la gestión de datos de Excel en C#?

IronXL proporciona flexibilidad en la gestión de datos de Excel con características como importación de datos por celdas, rangos y funciones agregadas. Simplifica las operaciones sin necesidad de Interop y ofrece una API robusta para la manipulación avanzada de datos.

¿Cómo se pueden usar funciones agregadas al importar datos de Excel?

Puede usar IronXL para realizar funciones agregadas como Suma, Promedio, Mínimo y Máximo mientras importa datos de archivos Excel, mejorando las capacidades de análisis de datos.

¿Es posible convertir hojas de trabajo Excel a DataTables en C#?

Sí, puede convertir hojas de trabajo Excel a DataTables en C# usando IronXL cargando el libro de trabajo y utilizando el método ToDataSet(), que facilita la gestión amplia de datos.

¿Puedo usar la primera fila de una hoja de Excel como encabezados de columna en C#?

IronXL le permite usar la primera fila de una hoja de Excel como encabezados de columna configurando el parámetro booleano de la función ToDataSet() en verdadero, convirtiendo los datos en un DataTable estructurado.

¿Dónde puedo encontrar más información sobre el uso de IronXL para operaciones con Excel?

Para más detalles sobre el uso de IronXL para operaciones con Excel, explore la Referencia API completa proporcionada por IronXL, que ofrece información sobre técnicas de manipulación de datos y funcionalidades avanzadas.

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 1,738,553 | Version: 2025.11 recién lanzado