Saltar al pie de página
USANDO IRONXL

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

IronXL is a feature-rich API that provides various functionalities to work with Excel files in C#. This tutorial will explore how to fetch data from Excel sheets in C# using IronXL.

To follow this tutorial, you need to have the following:

  • Microsoft Visual Studio installed on your machine
  • Basic knowledge of C# programming
  • IronXL library installed in your project

You can download IronXL from the official website or through the NuGet Package Manager in Visual Studio.

Installing IronXL in Visual Studio

To install IronXL on a C# project, please follow these steps:

  1. Open Microsoft Visual Studio.
  2. Create a new project or open an existing project.
  3. Right-click on the project in the Solution Explorer and select "Manage NuGet Packages."
  4. In the "NuGet Package Manager" window, select the "Browse" tab.
  5. In the search box, type "IronXL" and press Enter.
  6. Select "IronXL.Excel" and click the "Install" button.
  7. Click the "I Accept" button to accept the license agreement.
  8. Wait for the installation to complete.

How to Fetch Data From Excel Sheet in C#, Figure 1: Installing the IronXL Library in Visual Studio Project Installing the IronXL Library in Visual Studio Project

Once these steps are taken, IronXL should be installed and ready to use in your C# project.

Step 1: Import the Required Libraries

Add the following sample code to import the IronXL library and other necessary libraries.

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

Using the IronXL namespace provides all the necessary classes and functions to work with Excel files using the IronXL library.

Step 2: Load the Excel File

The first step is to load the file. IronXL provides a WorkBook class to load an Excel file. We can use the WorkBook class to open an existing Excel file or create a new workbook.

To load an existing Excel file, use the following code:

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

This code loads the specified Excel file into a WorkBook object.

To create a new WorkBook, use the following sample code:

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

This code creates a new workbook in the specified file format (here, XLSX).

How to Fetch Data From Excel Sheet in C#, Figure 3: IronXL can load and create Excel Spreadsheets in the .XLS and the .XLSX file formats IronXL can load and create Excel Spreadsheets in the .XLS and the .XLSX file formats

Step 3: Retrieve the Excel Sheet

After loading the Excel file, it is necessary to indicate the Excel sheet from which to fetch data. A WorkBook can contain multiple WorkSheet objects. Each WorkSheet needs to specify the name of the worksheet before accessing data.

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

This code retrieves the first worksheet (with worksheet name Sheet1) from the workbook. If you want to retrieve a worksheet by index, you can use the following code:

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

This code retrieves the first worksheet from the workbook, assuming that it exists.

Step 4: Retrieve Data from Excel Sheet

From the retrieved Excel sheet, accessing data becomes possible. IronXL provides various methods to retrieve data from an Excel sheet. Here are some of the most commonly used methods:

  • Indexer operator []: Retrieves the value of a single cell.
  • GetRow: Retrieves a single row of data.
  • GetColumn: Retrieves a single column of data.
  • GetRange: Retrieves a range of cells.

To retrieve a single cell's value, use the following code:

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

This code retrieves the value of cell A1 in the worksheet.

To retrieve a single row of data, use the following code:

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

This code retrieves the first row of data in the worksheet.

To retrieve a single column of data, use the following code:

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

This code retrieves the first column of data in the worksheet.

To retrieve a range of cells, use the following code:

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

This code retrieves the range of cells from A1 to B2 in the worksheet.

Step 5: Extract Data from Excel Sheet

To extract a single value from the retrieved data, it needs to be cast to the appropriate data type.

The following code shows how to extract an integer value from cell A1:

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

The following code can be used to extract a row of data:

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

This code extracts the first row of data and iterates through the values in the row, casting each value to an integer.

Next, the following code shows how to extract a column of data:

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

This code extracts the first column of data and iterates through the values in the column, casting each value to a string.

The next example demonstrates how to extract a range of cells:

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

This code extracts the range of cells from A1 to B2 and iterates through the values in each cell.

Conclusion

This tutorial explored how to fetch data from Excel sheets in C# using IronXL, as well as load an Excel file, retrieve the required worksheet, retrieve data from the worksheet, extract data, and import data to a database. IronXL provides a feature-rich API to work with Excel files, making it easy to integrate Excel data into C# applications. With IronXL, we can read and write Excel files and interact with their data programmatically. Additionally, we can use IronXL to automate Excel tasks, such as generating reports, creating charts, and formatting cells.

More about IronXL

IronXL is a user-friendly and convenient library for reading and writing to Excel & CSV files, with small and easily memorable functions.

This tutorial only scratched the surface of what IronXL can do. IronXL provides a wide range of additional features, such as cell formatting, math functions, and conditional formatting to name a few.

Notable Benefits of Using IronXL

  • Dedicated support from .NET engineers, cross-platform supports, Azure, AWS, and Docker.
  • Simple installation via Microsoft Visual Studio
  • Free trial for development, with licenses starting at $799
  • Easy integration into C# or VB.NET projects

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