USO DE IRONXL

Cómo importar archivos Excel en C#

Chaknith Bin
Chaknith Bin
18 de abril, 2023
Actualizado 20 de febrero, 2024
Compartir:

Microsoft Excel es un versátil programa de hojas de cálculo que ayuda a organizar, presentar y analizar datos. Sin embargo, trabajar con Excel mediante programación en C# puede resultar complicado. La biblioteca de software IronXL puede utilizarse para importar y leer archivos Excel en C#.

IronXL - Biblioteca Excel

IronXL es una biblioteca de Excel para .NET que prioriza la facilidad de uso, la precisión y la velocidad para sus usuarios. Te ayuda a importar y leer documentos Excel, y a crear y editar un archivo Excel de forma eficaz con un rendimiento rapidísimo. Funciona sin MS Office Interop. Esto significa que sin Excel instalado, proporciona todas las funcionalidades para leer archivos Excel. Esto convierte a IronXL en una potente herramienta para que los desarrolladores importen y lean archivos Excel en C#.

IronXL está disponible en todas las plataformas como Windows, Linux, MacOS, Docker, Azure y AWS. Es compatible con todo .NET Framework. IronXL es una biblioteca versátil que puede integrarse en aplicaciones ASP.NET de consola, escritorio y web. Admite diferentes formatos de libros de trabajo, como archivos XLS y XLSX, XSLT y XLSM, CSV y TSV.

Algunas características importantes

  • Abrir, leer archivos de Excel y buscar datos de diferentes formatos de hoja de cálculo como archivos XLS/CSV/TSV/XLSX.
  • Exportación de hojas de cálculo de Excel a XLS/XLSX/CSV/TSV/JSON.
  • Cifrado y descifrado de archivos XLSM/XLTX/XLSX con contraseñas.
  • Importe la hoja de Excel como objetos System.Data.DataSet y System.Data.DataTable.
  • Las fórmulas de un archivo de Excel se recalculan cada vez que se edita una hoja.
  • Configuraciones de rango de celdas intuitivas con una sintaxis sencilla WorkSheet ["A1:B10"].
  • Ordenar Rangos de Celdas, Columnas y Filas.
  • Estilo de celdas - Fuente, Tamaño de fuente, Color de fondo, Borde, Alineación y Formatos de numeración.

¿Cómo importar un libro de Excel en C#?

Requisitos previos

Para utilizar IronXL en C# para leer archivos de Excel, asegúrese de que los siguientes componentes estén instalados en la computadora:

  1. Visual Studio - Es el IDE oficial para desarrollar aplicaciones C# .NET. Puedes descargar e instalar Visual Studio desde el sitio web de Microsoft.

  2. IronXL - Es la biblioteca que ayuda a trabajar con hojas de Excel en una ruta dada en C#. Debe instalarse en un programa C# antes de utilizarlo. IronXL se puede descargar desde el sitio web de NuGet o administrar paquetes NuGet en las herramientas de Visual Studio. También puedes descargar directamente el archivo .NET Excel DLL.

Añadir los espacios de nombres necesarios

Una vez que Visual Studio y IronXL estén instalados, haga referencia al ensamblado IronXL para utilizar IronXL en el código fuente. Agregue la siguiente línea de código en la parte superior del archivo dentro del nuevo proyecto donde se utilizarán las funciones IronXL:

using IronXL;  
using IronXL;  
Imports IronXL
$vbLabelText   $csharpLabel

Abrir un archivo Excel existente en C#

Las hojas de cálculo de Microsoft Excel también se denominan libros de Excel. Cada libro de trabajo contiene varias hojas de trabajo y una sola hoja de trabajo contiene celdas tabulares con su valor. Para abrir y leer un archivo Excel, debe cargarse utilizando la clase WorkBook y el método Load presente en la biblioteca IronXL. El código es el siguiente:

//Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");  
//Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");  
'Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
$vbLabelText   $csharpLabel

Esto abre el archivo Excel en la variable de referencia de instancia del libro de trabajo. Como puede tener varias hojas de cálculo, puede utilizarse para abrir una hoja concreta o todas a la vez. El siguiente código abre la primera hoja de cálculo en la variable de instancia hoja:

WorkSheet sheet = workbook.WorkSheets.First();  
WorkSheet sheet = workbook.WorkSheets.First();  
Dim sheet As WorkSheet = workbook.WorkSheets.First()
$vbLabelText   $csharpLabel

Esto abrirá la primera hoja en el archivo Excel y ahora los datos de Excel pueden ser leídos y escritos en esta hoja.

Archivo Excel abierto

Cómo importar un archivo de Excel en C#, Figura 1: El archivo de Excel

El archivo de Excel

Leer datos del archivo Excel importado

Una vez importado el fichero Excel, está listo para leer los datos. Leer datos de archivos Excel en C# usando IronXL es muy simple y fácil. Puede leer los valores de las celdas de Excel simplemente mencionando el número de referencia de la celda.

El código siguiente recupera el valor de una celda con número de referencia "C2":

//Select cells easily in Excel-notation and return the value
int cellValue = sheet ["C2"].IntValue;

//Display the value
Console.WriteLine(cellValue);
//Select cells easily in Excel-notation and return the value
int cellValue = sheet ["C2"].IntValue;

//Display the value
Console.WriteLine(cellValue);
'Select cells easily in Excel-notation and return the value
Dim cellValue As Integer = sheet ("C2").IntValue

'Display the value
Console.WriteLine(cellValue)
$vbLabelText   $csharpLabel

El resultado es el siguiente:

Cómo importar un archivo de Excel en C#, Figura 2: Leer Excel

Leer Excel

Ahora, vamos a leer datos de un rango de celdas en el archivo Excel abierto. El código es el siguiente:

// Read from Range of cells elegantly.
foreach (var cell in sheet ["A2:A6"]) {
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}  
// Read from Range of cells elegantly.
foreach (var cell in sheet ["A2:A6"]) {
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}  
' Read from Range of cells elegantly.
For Each cell In sheet ("A2:A6")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

El código es muy sencillo, limpio y claro. El rango de celdas se puede referenciar con una sintaxis simple, como se muestra en un bucle foreach: sheet ["A2:A6"] y cada celda se puede iterar usando un bucle for para obtener su valor. Aquí, verá los nombres en la columna A desde la fila 2 hasta la fila 6 en la salida de la consola:

Cómo importar un archivo Excel en C#, Figura 3: Leer rango de celdas

Leer rango de celdas

Para obtener más detalles sobre la lectura y escritura de valores de celdas, consulta este tutorial leer archivo Excel en C# ejemplo.

Importar todos los datos del archivo Excel

IronXL puede utilizarse para leer hojas de Excel de una sola vez utilizando índices de Filas y Columnas. Los siguientes ejemplos de código de IronXL ayudan a obtener todos los datos del archivo de Excel en el mismo formato en la salida de la consola:

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

//Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++) {
    //Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++) {
        //Get the values 
        string val = sheet.Rows [i].Columns [j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}  
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

//Traverse all rows of Excel WorkSheet
for (int i = 0; i < sheet.Rows.Count(); i++) {
    //Traverse all columns of specific Row
    for (int j = 0; j < sheet.Columns.Count(); j++) {
        //Get the values 
        string val = sheet.Rows [i].Columns [j].Value.ToString();
        Console.Write("{0}\t", val);
    }
    Console.WriteLine();
}  
Imports Microsoft.VisualBasic

Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
Dim sheet As WorkSheet = workbook.WorkSheets.First()

'Traverse all rows of Excel WorkSheet
For i As Integer = 0 To sheet.Rows.Count() - 1
	'Traverse all columns of specific Row
	For j As Integer = 0 To sheet.Columns.Count() - 1
		'Get the values 
		Dim val As String = sheet.Rows (i).Columns (j).Value.ToString()
		Console.Write("{0}" & vbTab, val)
	Next j
	Console.WriteLine()
Next i
$vbLabelText   $csharpLabel

Archivo de salida

Cómo importar un archivo de Excel en C#, Figura 4: La consola de salida para leer un archivo de Excel

La consola de salida para leer un archivo de Excel

Añadir texto alternativo a la imagen.

Resumen

Este artículo muestra cómo importar y leer un archivo Excel en C# sin tener instalado Microsoft Excel. A continuación, se han estudiado varias formas de leer datos de una hoja de cálculo Excel. IronXL también ayuda a crear archivos Excel en C# sin necesidad de tener Excel instalado.

IronXL proporciona una solución todo en uno para que todas las tareas relacionadas con documentos de Microsoft Excel se implementen mediante programación. Puede realizar cálculos de fórmulas, ordenar cadenas o números, recortar y añadir, buscar y reemplazar, combinar y combinar, guardar archivos, etc. Puede editar valores de celda y también establecer formatos de datos de celda junto con la validación de datos de hoja de cálculo. También es compatible con archivos CSV y le ayuda a trabajar como los datos de Excel.

IronXL está disponible para una prueba gratuita y se puede licenciar para uso comercial con su paquete Lite a partir de $749 solamente.

Chaknith Bin
Ingeniero de software
Chaknith trabaja en IronXL e IronBarcode. Tiene una gran experiencia en C# y .NET, ayudando a mejorar el software y a apoyar a los clientes. Sus conocimientos de las interacciones con los usuarios contribuyen a mejorar los productos, la documentación y la experiencia general.
< ANTERIOR
Cómo exportar una tabla de datos a CSV en C#
SIGUIENTE >
Cómo convertir un conjunto de datos a CSV en C#