Saltar al pie de página
USANDO IRONXL

Cómo importar un archivo de Excel en C#

Microsoft Excel es un software de hoja de cálculo versátil que ayuda en la organización, presentación y análisis de datos. Sin embargo, trabajar con Excel programáticamente en C# puede ser un desafío. La biblioteca de software IronXL se puede usar para importar y leer archivos de Excel en C#.

IronXL - Biblioteca de Excel

IronXL es una biblioteca de Excel para .NET que prioriza la facilidad de uso, precisión y velocidad para sus usuarios. Te ayuda a importar y leer documentos de Excel, y a crear y editar un archivo de Excel de manera eficiente con un rendimiento ultra rápido. Funciona sin MS Office Interop. Esto significa que, sin Excel instalado, proporciona todas las funcionalidades para leer archivos de Excel. Esto hace que IronXL sea una herramienta poderosa para los desarrolladores que deseen importar y leer archivos de Excel en C#.

IronXL está disponible en todas las plataformas como Windows, Linux, MacOS, Docker, Azure y AWS. Es compatible con todo el .NET Framework. IronXL es una biblioteca versátil que puede integrarse en aplicaciones de consola, de escritorio y ASP.NET web. Soporta diferentes formatos de libro 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.
  • Exportar Hojas de Excel a XLS/XLSX/CSV/TSV/JSON.
  • Encriptar y desencriptar archivos XLSM/XLTX/XLSX con contraseñas.
  • Importar hoja de Excel como objetos System.Data.DataSet y System.Data.DataTable.
  • Las fórmulas de archivo de Excel se recalculan cada vez que se edita una hoja.
  • Configuración de rango de celdas intuitiva con una sintaxis fácil WorkSheet["A1:B10"].
  • Ordena rangos de celdas, columnas y filas.
  • Estilizar 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#?

Prerrequisitos

Para usar IronXL en C# para leer archivos de Excel, por favor asegúrate de que los siguientes componentes están instalados en el ordenador:

  1. Visual Studio - Es la 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 estar instalada en un programa C# antes de usarla. 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.

Agregar espacios de nombres necesarios

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

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

Abrir un archivo de Excel existente en C

Las Hojas de Cálculo de Microsoft Excel también se conocen como Libros de Excel. Cada libro contiene múltiples hojas y una sola hoja contiene celdas tabulares con su valor. Para abrir y leer un archivo de Excel, debe cargarse utilizando la clase WorkBook y el método Load presente en la biblioteca de 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 de Excel en la variable de referencia de instancia de libro de trabajo. Como puede tener múltiples hojas, puede usarse para abrir una hoja específica o todas al mismo tiempo. El siguiente código abre la primera hoja en la variable de instancia de la 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 de Excel y ahora se puede leer y escribir datos de Excel en esta hoja.

Archivo de 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 que se importa el archivo de Excel, está listo para leer los datos. Leer datos de archivos de 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 a continuación 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, leamos los datos desde un rango de celdas en el archivo de Excel abierto. El código es el siguiente:

// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read from a range of cells elegantly.
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Read from a 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 simple, limpio y claro. El rango de celdas puede ser referenciado con una sintaxis simple como se muestra en un bucle foreach: sheet["A2:A6"] y cada celda puede ser iterada 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 de Excel en C#, Figura 3: Leer Rango de Celdas Leer rango de celdas

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

Importar todos los datos del archivo Excel

IronXL se puede usar para leer hojas de Excel a la vez usando índices de filas y columnas. Las siguientes muestras 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 demostró cómo importar y leer un archivo de Excel en C# sin tener instalado Microsoft Excel. Luego consideró múltiples formas de leer datos de una hoja de cálculo de Excel. IronXL también ayuda a crear archivos de Excel en C# sin ningún Excel instalado.

IronXL proporciona una solución integral para todas las tareas relacionadas con documentos de Microsoft Excel que se implementan programáticamente. Puede realizar el cálculo de fórmulas, ordenar cadenas o números, cortar y agregar, buscar y reemplazar, fusionar y deshacer la fusión, guardar archivos, etc. Puede editar valores de celdas y también establecer formatos de datos de celdas junto con la validación de datos de hojas de cálculo. También admite archivos CSV y te ayuda a trabajar como datos de Excel.

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

Preguntas Frecuentes

¿Cómo puedo importar y leer un archivo Excel en C# sin usar Interop?

Puedes importar y leer archivos Excel en C# usando la biblioteca IronXL. Simplemente carga el archivo Excel usando WorkBook.Load("file.xlsx") para acceder y procesar los datos sin necesidad de tener Microsoft Excel instalado.

¿Con qué plataformas es compatible la biblioteca IronXL?

IronXL es compatible con todos los Frameworks .NET y puede usarse en múltiples plataformas, incluidas Windows, Linux, MacOS, Docker, Azure y AWS.

¿Puedo usar IronXL para editar archivos Excel sin tener instalado Microsoft Excel?

Sí, IronXL te permite crear y editar archivos Excel programáticamente en C# sin requerir que Microsoft Excel esté instalado en tu sistema.

¿Qué formatos de Excel puede manejar IronXL?

IronXL soporta varios formatos de archivo Excel como XLS, XLSX, CSV, TSV y muchos más, permitiendo una fácil importación y manipulación de datos.

¿Cuáles son los requisitos previos para usar IronXL en un proyecto de C#?

Para usar IronXL, asegúrate de tener Visual Studio instalado. Puedes agregar IronXL a tu proyecto a través del administrador de paquetes NuGet o descargando y referenciando la DLL .NET Excel.

¿Cómo puedo cargar un libro de Excel con IronXL en C#?

Para cargar un libro de Excel en C#, usa el método WorkBook.Load("path/to/file.xlsx") de IronXL, lo que te permite abrir y manipular el libro.

¿Es posible manejar fórmulas de Excel utilizando IronXL?

Sí, IronXL puede procesar y recalcular fórmulas de Excel sin problemas cada vez que se edita una hoja, asegurando precisión en los cálculos de datos.

¿Cómo leo datos de una celda específica usando IronXL?

Para leer datos de una celda específica, usa la sintaxis de IronXL como sheet["B2"].StringValue para obtener el valor de la celda B2.

¿Puedo iterar sobre un rango de celdas en una hoja de Excel usando IronXL?

Sí, puedes iterar sobre un rango de celdas usando IronXL con una sintaxis como foreach (var cell in sheet["A1:C3"]) para procesar cada celda individualmente.

¿Cómo se puede integrar IronXL en aplicaciones ASP.NET?

IronXL se puede integrar fácilmente en aplicaciones ASP.NET agregando la biblioteca a través de NuGet y referenciándola en tu proyecto, lo que permite la manipulación de archivos Excel en aplicaciones web.

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