Saltar al pie de página
USANDO IRONXL

Cómo obtener datos de una hoja de Excel en C#

IronXL es una API rica en características que proporciona diversas funcionalidades para trabajar con archivos de Excel en C#. Este tutorial explorará cómo obtener datos de hojas de Excel en C# usando IronXL.

Para seguir este tutorial, necesitas tener lo siguiente:

  • Microsoft Visual Studio instalado en tu máquina
  • Conocimiento básico de programación en C#
  • Biblioteca de IronXL instalada en tu proyecto

Puedes descargar IronXL del sitio web oficial o a través del administrador de paquetes NuGet en Visual Studio.

Instalación de IronXL en Visual Studio

Para instalar IronXL en un proyecto de C#, sigue estos pasos:

  1. Abre Microsoft Visual Studio.
  2. Crea un nuevo proyecto o abre un proyecto existente.
  3. Haz clic derecho en el proyecto en el Explorador de Soluciones y selecciona "Administrar Paquetes NuGet".
  4. En la ventana "Gestor de Paquetes NuGet", selecciona la pestaña "Navegar".
  5. En el cuadro de búsqueda, escribe "IronXL" y presiona Enter.
  6. Selecciona "IronXL.Excel" y haz clic en el botón "Instalar".
  7. Haz clic en el botón "Acepto" para aceptar el acuerdo de licencia.
  8. Espera a que la instalación se complete.

Cómo Obtener Datos desde Hoja de Excel en C#, Figura 1: Instalando la Biblioteca de IronXL en el Proyecto de Visual Studio Instalando la Biblioteca de IronXL en el Proyecto de Visual Studio

Una vez completados estos pasos, IronXL debería estar instalado y listo para usarse en tu proyecto de C#.

Paso 1: Importar las bibliotecas necesarias

Agrega el siguiente código de ejemplo para importar la biblioteca de IronXL y otras bibliotecas necesarias.

using IronXL;
using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
using IronXL;
using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
Imports IronXL
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.Windows.Forms
$vbLabelText   $csharpLabel

Usar el namespace de IronXL proporciona todas las clases y funciones necesarias para trabajar con archivos de Excel usando la biblioteca de IronXL.

Paso 2: Cargue el archivo Excel

El primer paso es cargar el archivo. IronXL proporciona una clase WorkBook para cargar un archivo de Excel. Podemos usar la clase WorkBook para abrir un archivo de Excel existente o crear un nuevo libro de trabajo.

Para cargar un archivo de Excel existente, usa el siguiente código:

WorkBook workbook = WorkBook.Load("path/to/excel/file.xlsx");
WorkBook workbook = WorkBook.Load("path/to/excel/file.xlsx");
Dim workbook As WorkBook = WorkBook.Load("path/to/excel/file.xlsx")
$vbLabelText   $csharpLabel

Este código carga el archivo de Excel especificado en un objeto WorkBook.

Para crear un nuevo WorkBook, usa el siguiente código de ejemplo:

WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
$vbLabelText   $csharpLabel

Este código crea un nuevo libro de trabajo en el formato de archivo especificado (aquí, XLSX).

Cómo Obtener Datos desde Hoja de Excel en C#, Figura 3: IronXL puede cargar y crear Hojas de Cálculo de Excel en formatos de archivo .XLS y .XLSX IronXL puede cargar y crear Hojas de Cálculo de Excel en formatos de archivo .XLS y .XLSX

Paso 3: Recuperar la hoja de Excel

Después de cargar el archivo de Excel, es necesario indicar la hoja de Excel de la cual obtener datos. Un WorkBook puede contener múltiples objetos WorkSheet. Cada WorkSheet necesita especificar el nombre de la hoja de cálculo antes de acceder a los datos.

WorkSheet worksheet = workbook.WorkSheets["Sheet1"];
WorkSheet worksheet = workbook.WorkSheets["Sheet1"];
Dim worksheet As WorkSheet = workbook.WorkSheets("Sheet1")
$vbLabelText   $csharpLabel

Este código recupera la primera hoja de cálculo (con el nombre de hoja Sheet1) del libro de trabajo. Si deseas recuperar una hoja de cálculo por índice, puedes usar el siguiente código:

WorkSheet worksheet = workbook.WorkSheets[0];
WorkSheet worksheet = workbook.WorkSheets[0];
Dim worksheet As WorkSheet = workbook.WorkSheets(0)
$vbLabelText   $csharpLabel

Este código recupera la primera hoja de cálculo del libro de trabajo, asumiendo que existe.

Paso 4: Recuperar datos de la hoja de Excel

A partir de la hoja de Excel recuperada, acceder a datos se hace posible. IronXL proporciona varios métodos para recuperar datos de una hoja de Excel. Aquí están algunos de los métodos más comúnmente usados:

  • Operador indexador []: Recupera el valor de una sola celda.
  • GetRow: Recupera una sola fila de datos.
  • GetColumn: Recupera una sola columna de datos.
  • GetRange: Recupera un rango de celdas.

Para recuperar el valor de una sola celda, usa el siguiente código:

object value = worksheet["A1"].Value;
object value = worksheet["A1"].Value;
Dim value As Object = worksheet("A1").Value
$vbLabelText   $csharpLabel

Este código recupera el valor de la celda A1 en la hoja de cálculo.

Para recuperar una sola fila de datos, usa el siguiente código:

var dataRow = worksheet.GetRow(1);
var dataRow = worksheet.GetRow(1);
Dim dataRow = worksheet.GetRow(1)
$vbLabelText   $csharpLabel

Este código recupera la primera fila de datos en la hoja de cálculo.

Para recuperar una sola columna de datos, usa el siguiente código:

var dataColumn = worksheet.GetColumn(1);
var dataColumn = worksheet.GetColumn(1);
Dim dataColumn = worksheet.GetColumn(1)
$vbLabelText   $csharpLabel

Este código recupera la primera columna de datos en la hoja de cálculo.

Para recuperar un rango de celdas, usa el siguiente código:

var cellRange = worksheet.GetRange("A1:B2");
var cellRange = worksheet.GetRange("A1:B2");
Dim cellRange = worksheet.GetRange("A1:B2")
$vbLabelText   $csharpLabel

Este código recupera el rango de celdas desde A1 hasta B2 en la hoja de cálculo.

Paso 5: Extraer datos de la hoja de Excel

Para extraer un solo valor de los datos recuperados, necesita ser convertido al tipo de dato apropiado.

El siguiente código muestra cómo extraer un valor entero de la celda A1:

int value = worksheet["A1"].IntValue;
int value = worksheet["A1"].IntValue;
Dim value As Integer = worksheet("A1").IntValue
$vbLabelText   $csharpLabel

El siguiente código puede usarse para extraer una fila de datos:

var dataRow = worksheet.GetRow(1);
var values = dataRow.Values;

foreach (var value in values)
{
    int intValue = (int)value;
    // Do something with the extracted value
}
var dataRow = worksheet.GetRow(1);
var values = dataRow.Values;

foreach (var value in values)
{
    int intValue = (int)value;
    // Do something with the extracted value
}
Dim dataRow = worksheet.GetRow(1)
Dim values = dataRow.Values

For Each value In values
	Dim intValue As Integer = CInt(value)
	' Do something with the extracted value
Next value
$vbLabelText   $csharpLabel

Este código extrae la primera fila de datos e itera a través de los valores en la fila, convirtiendo cada valor a un entero.

A continuación, el siguiente código muestra cómo extraer una columna de datos:

var dataColumn = worksheet.GetColumn(1);
var values = dataColumn.Values;

foreach (var value in values)
{
    string strValue = (string)value;
    // Do something with the extracted value
}
var dataColumn = worksheet.GetColumn(1);
var values = dataColumn.Values;

foreach (var value in values)
{
    string strValue = (string)value;
    // Do something with the extracted value
}
Dim dataColumn = worksheet.GetColumn(1)
Dim values = dataColumn.Values

For Each value In values
	Dim strValue As String = CStr(value)
	' Do something with the extracted value
Next value
$vbLabelText   $csharpLabel

Este código extrae la primera columna de datos e itera a través de los valores en la columna, convirtiendo cada valor a una cadena.

El siguiente ejemplo demuestra cómo extraer un rango de celdas:

var cellRange = worksheet.GetRange("A1:B2");
var values = cellRange.Values;

foreach (var row in values)
{
    foreach (var value in row)
    {
        // Do something with the extracted value
    }
}
var cellRange = worksheet.GetRange("A1:B2");
var values = cellRange.Values;

foreach (var row in values)
{
    foreach (var value in row)
    {
        // Do something with the extracted value
    }
}
Dim cellRange = worksheet.GetRange("A1:B2")
Dim values = cellRange.Values

For Each row In values
	For Each value In row
		' Do something with the extracted value
	Next value
Next row
$vbLabelText   $csharpLabel

Este código extrae el rango de celdas desde A1 hasta B2 e itera a través de los valores en cada celda.

Conclusión

Este tutorial exploró cómo obtener datos de hojas de Excel en C# usando IronXL, así como cargar un archivo de Excel, recuperar la hoja de cálculo requerida, recuperar datos de la hoja de cálculo, extraer datos e importar datos a una base de datos. IronXL proporciona una API rica en características para trabajar con archivos de Excel, facilitando la integración de datos de Excel en aplicaciones de C#. Con IronXL, podemos leer y escribir archivos de Excel e interactuar con sus datos programáticamente. Además, podemos usar IronXL para automatizar tareas de Excel, como generar reportes, crear gráficos, y formatear celdas.

Más sobre IronXL

IronXL es una biblioteca fácil de usar y conveniente para leer y escribir en archivos Excel y CSV, con funciones pequeñas y fáciles de recordar.

Este tutorial solo arañó la superficie de lo que IronXL puede hacer. IronXL proporciona una amplia gama de características adicionales, como formateo de celdas, funciones matemáticas, y formateo condicional, por nombrar algunas.

Beneficios notables del uso de IronXL

  • Soporte dedicado de ingenieros .NET, soporte multiplataforma, Azure, AWS y Docker.
  • Instalación simple a través de Microsoft Visual Studio
  • Prueba gratuita para desarrollo, con licencias comenzando desde $799
  • Fácil integración en proyectos de C# o VB.NET

Preguntas Frecuentes

¿Cómo puedo convertir HTML a PDF en C#?

Puedes usar el método RenderHtmlAsPdf de IronPDF para convertir cadenas de HTML en PDFs. También puedes convertir archivos HTML a PDFs usando RenderHtmlFileAsPdf.

¿Cómo obtengo datos de una hoja de Excel en C# sin Interop?

Puede utilizar IronXL para obtener datos de hojas de Excel en C# cargando el archivo de Excel con la clase WorkBook y accediendo a los datos usando métodos como GetRow(), GetColumn() y GetRange().

¿Cuáles son los requisitos previos para usar IronXL para manipular archivos de Excel en C#?

Necesita Microsoft Visual Studio, conocimientos básicos de programación en C# y la biblioteca IronXL instalada a través del Administrador de paquetes NuGet para manipular archivos de Excel en C#.

¿Cómo puedo instalar IronXL en mi proyecto de Visual Studio?

Para instalar IronXL, abra Visual Studio, haga clic derecho en su proyecto en el Explorador de soluciones, seleccione 'Administrar paquetes NuGet' y busque 'IronXL' en la pestaña Examinador. Haga clic en 'Instalar' para agregarlo a su proyecto.

¿Cómo cargo un archivo de Excel usando IronXL?

Use la clase WorkBook para cargar un archivo de Excel. Por ejemplo, WorkBook workbook = WorkBook.Load("path/to/excel/file.xlsx");

¿Cómo puedo recuperar una hoja de cálculo específica de un libro de trabajo usando IronXL?

Puede recuperar una hoja de cálculo usando su nombre: WorkSheet worksheet = workbook.WorkSheets["Sheet1"]; o por índice: WorkSheet worksheet = workbook.WorkSheets[0];

¿Cómo extraigo datos de una celda usando IronXL?

Use el índice de la celda para recuperar su valor, por ejemplo, object value = worksheet["A1"].Value; y conviértalo al tipo de datos apropiado.

¿Puede IronXL trabajar con formatos de archivo .XLS y .XLSX?

Sí, IronXL puede cargar y crear hojas de cálculo de Excel en formatos de archivo .XLS y .XLSX.

¿Cómo extraigo un rango de celdas usando IronXL?

Para extraer un rango de celdas, use var cellRange = worksheet.GetRange("A1:B2"); e iterar a través de los valores.

¿Cuáles son algunos beneficios de usar IronXL?

IronXL ofrece soporte dedicado de ingenieros de .NET, soporte multiplataforma, instalación simple a través de Visual Studio, una prueba gratuita y fácil integración en proyectos de C# o VB.NET.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más