Cómo importar archivos de Excel en C

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

IronXL permite a los desarrolladores de C# importar datos de Excel con una sola línea de código, ya que admite XLSX, CSV y otros formatos sin dependencias de Interop, lo que permite el acceso inmediato a celdas, rangos y hojas de cálculo para la manipulación de datos.

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

Con sólo una llamada al método que utiliza la API sin tiempo de espera de IronXL, puede cargar cualquier hoja de Excel compatible (XLSX, CSV, etc.) en cuestión de 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

Instalación de la biblioteca IronXL

IronXL facilita la importación de Excel

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. IronXL proporciona una completa C# Excel API que simplifica el trabajo con archivos de Excel sin necesidad de dependencias de Microsoft Office o Interop. Esto lo hace ideal para entornos de servidor y despliegues en la nube.

Métodos de instalación

Instale en su proyecto C# vía descarga de DLL o navegue usando el paquete NuGet. Para obtener información detallada sobre la instalación, consulte nuestra glosario de introducción.

Install-Package IronXL.Excel

Tutorial de cómo hacerlo

Cómo acceder a una hoja de trabajo en su proyecto

Proceso básico de carga de WorkBook

Para las necesidades de nuestro proyecto de hoy, vamos a importar datos de Excel en nuestra aplicación C# utilizando el software IronXL instalado en el paso 1. La biblioteca admite varios formatos de Excel y proporciona métodos intuitivos para cargar hojas de cálculo.

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

// 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. Este método es compatible con XLSX, XLS, CSV, TSV y otros formatos comunes de hoja de cálculo.

Acceso a una hoja de trabajo específica

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. Más información sobre la gestión de hojas de trabajo en nuestra guía completa.

// 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 WorkSheet se importará como ws, y wb es el WorkBook que definimos en el ejemplo de código anterior.

Métodos alternativos para acceder a las hojas de trabajo

Existen las siguientes formas alternativas de importar una hoja de trabajo de Excel al proyecto. Cada método ofrece flexibilidad en función de su caso de uso específico:

// 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. Exploremos todos los aspectos posibles para importar datos de archivos Excel en nuestro proyecto.


Importación de datos de Excel en C#

Método básico de importación de celdas

Este es el aspecto básico de importar datos de archivos de Excel en nuestro proyecto. IronXL ofrece múltiples formas de acceder a los datos de las celdas, lo que lo hace flexible para diferentes escenarios.

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

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

Importación de datos mediante índices de filas y columnas

También podemos importar datos de celdas de archivos de Excel usando índices de fila y columna. Esta línea de código devuelve el valor del índice de fila y columna especificado. Este enfoque es especialmente útil cuando se itera a través de datos mediante programación:

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

Almacenamiento de valores importados en variables

Para asignar valores de celda importados a variables, utilice este código. El método ToString() garantiza la compatibilidad con variables de cadena, pero también se pueden convertir a otros tipos según sea necesario:

// 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();

// for numeric values
decimal numericValue = ws["B2"].DecimalValue;

// for date values
DateTime dateValue = ws["C2"].DateTimeValue;
// 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();

// for numeric values
decimal numericValue = ws["B2"].DecimalValue;

// for date values
DateTime dateValue = ws["C2"].DateTimeValue;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

En los ejemplos anteriores, el índice de fila y columna comienza en 0. Para operaciones de celda más avanzadas, explore nuestra guía sobre borrar celdas y copiar celdas.


Importación de datos de un rango específico

Sintaxis de funciones de rango

To import data in a specific range from an Excel WorkBook, use the range function. Defina el rango describiendo las direcciones de las celdas inicial y final. Esto devuelve todos los valores de celda dentro del rango especificado. Para conocer todas las técnicas de selección de gamas, consulte nuestra guía de selección de gamas.

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

Ejemplo completo de importación de rangos

Para más información sobre cómo trabajar con rangos en archivos Excel y aprender más sobre cómo extraer datos con diferentes métodos. El siguiente ejemplo muestra la importación tanto de valores de celdas individuales como de rangos:

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

Salida de consola que muestra los resultados de importación del rango B3:B9 de Excel con el valor Midmarket y la lista de países que incluye Alemania, México y Canadá

With the values of Excel file sample.xlsx as:

Hoja de cálculo Excel con datos de ventas que muestra celdas resaltadas en azul para la selección de rangos durante el proceso de importación

Importación de datos de Excel mediante funciones agregadas

Funciones agregadas disponibles

Aplicar funciones de agregación a archivos de Excel e importar los datos resultantes de estas funciones. IronXL ofrece funciones matemáticas integradas que facilitan el análisis de datos. A continuación se ofrecen ejemplos de diferentes funciones y su uso:

  • 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

Uso conjunto de varias funciones agregadas

Obtenga más información sobre cómo trabajar con funciones agregadas en Excel para C# y aprenda más sobre cómo extraer datos con diferentes métodos. Estas funciones son especialmente útiles para generar estadísticas resumidas o validar datos importados.

Vea un ejemplo de importación de datos de archivos 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:

Salida de consola que muestra funciones agregadas de Excel: Sum=452, Avg=56.5, Min=5, Max=350 para el rango D2 a D9

Y nuestro archivo sample.xlsx contiene estos valores:

Hoja de cálculo Excel con datos de ventas en la que aparece resaltada la columna Precio de venta que contiene valores para el análisis de funciones agregadas

Importación de datos completos de archivos Excel

El método ToDataSet

Para importar datos completos de un archivo de Excel en un proyecto de C#, primero analice el WorkBook cargado en un DataSet. De este modo, los datos completos de Excel se importan en el DataSet, y las WorkSheets de los archivos Excel se convierten en DataTables dentro de ese DataSet. Este enfoque es especialmente útil para las operaciones con bases de datos o cuando se trabaja con controles vinculados a datos. Más información sobre la importación y exportación como DataSet.

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

Esto importa nuestro WorkSheet especificado a un DataSet para utilizarlo según los requisitos. Este método es especialmente eficaz cuando se trabaja con varias hojas simultáneamente o cuando se integran datos de Excel con operaciones ADO.NET.

Cabeceras de columna

A menudo, la primera fila de un archivo Excel sirve como nombre de columna. En este caso, haga que la primera fila DataTable nombres de columna. Establezca el parámetro booleano de la función ToDataSet() de IronXL de la siguiente manera:

// 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 convierte la primera fila del archivo de Excel en nombres de columna DataTable, lo que es esencial para mantener la integridad de la estructura de datos cuando se trabaja con datos estructurados de Excel.

Ejemplo completo de importación de un conjunto de datos

Vea un ejemplo completo de importación de datos de Excel a un DataSet y uso de la primera fila de una hoja de trabajo de Excel como nombres de columna de 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 las funciones Dataset y DataTable de Excel puede resultar complejo, pero disponemos de más ejemplos para incorporar datos de archivos a su proyecto de C#. Para escenarios avanzados, considere explorar nuestras guías sobre Excel a SQL a través de DataTable y cargar Excel desde una base de datos SQL.


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 la API para IronXL.

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

Preguntas Frecuentes

¿Cómo puedo importar un archivo Excel en C# sin utilizar Microsoft Office?

Puede importar archivos de Excel en C# utilizando IronXL, que no requiere dependencias de Microsoft Office o Interop. Simplemente utilice el método WorkBook.Load() con su ruta de archivo, como: WorkBook wb = WorkBook.Load("ruta/a/datos.xlsx"). Esto funciona con XLSX, XLS, CSV, TSV y otros formatos.

¿Qué formatos de archivo de Excel puedo importar con esta biblioteca de C#?

IronXL soporta la importación de varios formatos de Excel incluyendo XLSX, XLS, CSV, TSV, y otros formatos comunes de hojas de cálculo. El mismo método WorkBook.Load() maneja todos estos formatos automáticamente.

¿Es posible importar datos de Excel en servidores o entornos en la nube?

Sí, IronXL es ideal para entornos de servidor y despliegues en la nube porque no requiere dependencias de Microsoft Office o Interop. Esto lo hace perfecto para aplicaciones web, funciones de Azure y otros escenarios del lado del servidor.

¿En cuánto tiempo puedo empezar a trabajar con datos de Excel después de importarlos?

Con la API sin tiempo de espera de IronXL, puede cargar cualquier hoja de Excel compatible en cuestión de segundos con una sola línea de código. Después de usar WorkBook.Load(), puede comenzar inmediatamente a interactuar con celdas, rangos u hojas de cálculo.

¿Puedo importar rangos de celdas específicos de archivos Excel?

Sí, IronXL le permite importar datos de rangos de celdas específicos después de cargar el libro de trabajo. Puede acceder a celdas individuales, rangos u hojas de trabajo completas utilizando la intuitiva API proporcionada.

¿Cómo se instala la biblioteca de importación de Excel para C#?

Puedes instalar IronXL a través del gestor de paquetes NuGet o descargando directamente la DLL. La biblioteca está disponible de forma gratuita para el desarrollo y proporciona documentación completa para empezar.

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,765,830 | Versión: 2025.12 recién lanzado