Cómo importar un archivo de Excel en C#
Importe archivos Excel en C# usando IronXL , una biblioteca .NET que lee archivos XLS, XLSX, CSV sin tener Microsoft Excel instalado. Simplemente use WorkBook.Load("file.xlsx") para abrir archivos y acceder a los datos de las celdas con una sintaxis intuitiva como sheet["A1"] .
Microsoft Excel es un software de hoja de cálculo versátil que ayuda con la organización, presentación y análisis de datos. Sin embargo, trabajar con Excel mediante programación en C# puede ser un desafío, especialmente cuando se trata de diferentes tipos de archivos de hojas de cálculo o cuando Microsoft Office no está instalado en el servidor de implementación. La biblioteca de software IronXL proporciona una solución integral para importar y leer archivos Excel en aplicaciones C#, compatible con varios formatos, incluidos archivos XLSX , XLS y CSV.
¿Qué es IronXL y por qué debería usarlo para importar a Excel?
IronXL es una biblioteca .NET Excel que prioriza la facilidad de uso, la precisión y la velocidad. Le ayuda a importar y leer documentos de Excel, y a crear y editar archivos de Excel de manera eficiente y con un rendimiento increíblemente rápido. A diferencia de los enfoques tradicionales que requieren Microsoft Office Interop, IronXL funciona de forma independiente sin dependencias de MS Office Interop. Esto significa que obtiene todas las funcionalidades para leer archivos de Excel sin tener Excel instalado. Esto hace que IronXL sea una herramienta poderosa para que los desarrolladores importen y lean archivos de Excel en aplicaciones C#, ya sea que estén creando aplicaciones web ASP.NET , aplicaciones de escritorio o soluciones basadas en la nube.
IronXL está disponible en todas las plataformas como Windows, Linux , macOS , Docker , Azure y AWS . Es compatible con todas las versiones de .NET Framework y admite entornos modernos .NET Core y .NET 5+. IronXL es una biblioteca versátil que se puede integrar en aplicaciones ASP.NET de consola, escritorio y web, así como en aplicaciones Blazor . Admite diferentes formatos de libros de trabajo, como archivos XLS y XLSX, XSLT y XLSM, CSV y TSV, lo que lo hace ideal para situaciones en las que necesita convertir entre tipos de archivos de hojas de cálculo .
¿Qué características clave hacen que IronXL sea esencial para la importación de Excel?
- Abra, lea archivos de Excel y busque datos de diferentes formatos de hojas de cálculo como archivos XLS/CSV/TSV/XLSX sin necesidad de instalar Excel
- Exportar hojas de cálculo de Excel a múltiples formatos, incluidos XLS/XLSX/CSV/TSV/JSON e incluso HTML
- Cifrado y descifrado de archivos XLSM/XLTX/XLSX con contraseñas para mayor seguridad
- Importar hojas de Excel como objetos
System.Data.DataSetySystem.Data.DataTablepara una integración perfecta con la base de datos - Las fórmulas de los archivos de Excel se recalculan automáticamente cada vez que se edita una hoja
- Configuración intuitiva de rangos de celdas con una sintaxis fácil
WorkSheet["A1:B10"]para seleccionar rangos - Ordenar rangos de celdas, columnas y filas con métodos integrados
- Estilo de celda integral que incluye personalización de fuentes , colores de fondo , bordes y alineación , y formatos de numeración.
¿Cómo importo un libro de Excel en C#?
¿Qué necesito antes de comenzar a importar a Excel?
Para usar IronXL en C# para leer archivos de Excel, asegúrese de que los siguientes componentes estén instalados en su computadora:
Visual Studio : este es el IDE oficial para desarrollar aplicaciones C# .NET. Visual Studio proporciona un excelente soporte
IntelliSensey herramientas de depuración que facilitan el trabajo con archivos de Excel. Puedes descargar e instalar Visual Studio desde el sitio web de Microsoft. La edición comunitaria es gratuita y suficiente para la mayoría de las necesidades de desarrollo.- IronXL : esta es la biblioteca que le ayuda a trabajar con hojas de Excel en una ruta determinada en C#. Debe instalarse en su programa C# antes de usarlo. IronXL se puede descargar fácilmente desde el sitio web de NuGet o instalar directamente a través de la interfaz Administrar paquetes NuGet en las herramientas de Visual Studio. También puede descargar el archivo DLL de .NET Excel directamente si prefiere la instalación manual.
Para las implementaciones de producción, necesitará aplicar una clave de licencia para eliminar las marcas de agua y habilitar la funcionalidad completa. El desarrollo y las pruebas se pueden realizar con la versión de prueba.
¿Qué espacios de nombres debo agregar a mi código?
Una vez instalados Visual Studio e IronXL, haga referencia al ensamblado IronXL para usar IronXL en su 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 de IronXL:
using IronXL;using IronXL;Esta importación de espacio de nombres único proporciona acceso a todas las funciones principales necesarias para las operaciones de Excel. Si está trabajando con funciones específicas de Excel, como gráficos o formato condicional , es posible que necesite importar espacios de nombres adicionales de la biblioteca IronXL.
¿Cómo cargo y abro un archivo de Excel?
Las Hojas de Cálculo de Microsoft Excel también se conocen como Libros de Excel. Cada libro de trabajo contiene varias hojas de trabajo (también llamadas hojas), y una sola hoja de trabajo contiene celdas tabulares organizadas en filas y columnas con sus respectivos valores. Para abrir y leer un archivo Excel , cárguelo 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");
// You can also load from a stream
using (var stream = File.OpenRead("test.xlsx"))
{
WorkBook streamWorkbook = WorkBook.Load(stream);
}
// Or load CSV files with custom delimiters
WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ",");// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
// You can also load from a stream
using (var stream = File.OpenRead("test.xlsx"))
{
WorkBook streamWorkbook = WorkBook.Load(stream);
}
// Or load CSV files with custom delimiters
WorkBook csvWorkbook = WorkBook.LoadCSV("data.csv", delimiter: ",");Esto abre el archivo de Excel en la variable de referencia de instancia de libro de trabajo. Dado que un libro de trabajo puede tener varias hojas de trabajo, puede acceder a ellas de varias maneras. El siguiente código abre la primera hoja en la variable de instancia de la hoja:
// Get the first worksheet
WorkSheet sheet = workbook.WorkSheets.First();
// Or access by worksheet name
WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1");
// Or by index (zero-based)
WorkSheet indexedSheet = workbook.WorkSheets[0];// Get the first worksheet
WorkSheet sheet = workbook.WorkSheets.First();
// Or access by worksheet name
WorkSheet namedSheet = workbook.GetWorkSheet("Sheet1");
// Or by index (zero-based)
WorkSheet indexedSheet = workbook.WorkSheets[0];Esto abrirá la primera hoja en el archivo de Excel, y ahora se pueden leer y escribir datos de Excel en esta hoja. Para escenarios más avanzados, es posible que necesite administrar varias hojas de trabajo o crear nuevas hojas de cálculo mediante programación.
Archivo de Excel abierto
Hoja de cálculo de Excel con datos de empleados, columnas para Nombre, Cargo y Salario, que contiene 5 registros de empleados con diferentes cargos y salarios. Archivo de Excel de muestra que contiene información de los empleados que se importará mediante C#. Los datos incluyen nombres, designaciones de trabajo (Gerente, Director, Empleado, Presidente) y valores salariales correspondientes.
¿Cómo puedo leer valores de celda específicos después de la importación?
Una vez importado el archivo Excel, está listo para leer 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 en la notación estándar de Excel (como "A1", "B2", etc.). La biblioteca proporciona múltiples formas de acceder a los valores de las celdas según el tipo de datos esperado.
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);
// You can also access different data types
string textValue = sheet["A2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
double doubleValue = sheet["C2"].DoubleValue;
DateTime dateValue = sheet["D2"].DateTimeValue;
bool boolValue = sheet["E2"].BoolValue;
// Check if cell is empty
bool isEmpty = sheet["F2"].IsEmpty;// Select cells easily in Excel-notation and return the value
int cellValue = sheet["C2"].IntValue;
// Display the value
Console.WriteLine(cellValue);
// You can also access different data types
string textValue = sheet["A2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
double doubleValue = sheet["C2"].DoubleValue;
DateTime dateValue = sheet["D2"].DateTimeValue;
bool boolValue = sheet["E2"].BoolValue;
// Check if cell is empty
bool isEmpty = sheet["F2"].IsEmpty;El resultado es el siguiente:
Ventana de la consola de depuración de Microsoft Visual Studio que muestra el resultado de una operación de lectura de un archivo de Excel, la ruta del archivo y un mensaje de finalización. La salida de la consola de depuración después de leer con éxito un archivo de Excel en C#. El programa ha completado la ejecución y está esperando la entrada del usuario para cerrar.
Ahora, leamos los datos de un rango de celdas en el archivo de Excel abierto. IronXL facilita el trabajo con rangos de celdas mediante la notación habitual de Excel. 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);
}
// You can also work with entire rows or columns
var row = sheet.GetRow(2); // Get row 3 (0-indexed)
foreach (var cell in row)
{
Console.WriteLine($"Row cell value: {cell.Value}");
}
// Or get a column
var column = sheet.GetColumn(0); // Get column A
foreach (var cell in column)
{
Console.WriteLine($"Column A value: {cell.Value}");
}// 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);
}
// You can also work with entire rows or columns
var row = sheet.GetRow(2); // Get row 3 (0-indexed)
foreach (var cell in row)
{
Console.WriteLine($"Row cell value: {cell.Value}");
}
// Or get a column
var column = sheet.GetColumn(0); // Get column A
foreach (var cell in column)
{
Console.WriteLine($"Column A value: {cell.Value}");
}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ás los nombres en la columna A desde la fila 2 a la fila 6 en la salida de la consola:
Consola de depuración de Microsoft Visual Studio que muestra el resultado de la lectura de las celdas A2 a A6 de Excel, mostrando los nombres: John, Sara, Peter, Mathew y Katherine Salida de consola que demuestra la lectura exitosa de un rango de celdas de Excel (A2:A6) que contienen nombres usando C#
Para obtener más detalles sobre la lectura y escritura de valores de celda, consulte este tutorial sobre cómo leer archivos de Excel en un ejemplo de C# . También puede explorar funciones avanzadas como aplicar fórmulas o trabajar con rangos con nombre .
¿Cómo importo hojas de trabajo enteras a la vez?
IronXL se puede usar para leer hojas de Excel a la vez usando índices de filas y columnas. Esto es particularmente útil cuando necesitas procesar todos los datos en una hoja de cálculo o cuando estás convirtiendo Excel a otros formatos como CSV o JSON. Los siguientes ejemplos de código IronXL le ayudan a obtener todos los datos del archivo 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();
}
// Alternative method using LINQ for more efficient processing
var allData = sheet.Rows.SelectMany(row =>
row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList();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();
}
// Alternative method using LINQ for more efficient processing
var allData = sheet.Rows.SelectMany(row =>
row.Columns.Select(col => col.Value?.ToString() ?? "")).ToList();Para archivos de Excel más grandes, es posible que desee considerar el uso de objetos DataTable o DataSet para obtener un mejor rendimiento y una manipulación de datos más sencilla:
// Convert worksheet to DataTable for easier manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers
// Process data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item}\t");
}
Console.WriteLine();
}// Convert worksheet to DataTable for easier manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers
// Process data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item}\t");
}
Console.WriteLine();
}Archivo de salida
Consola de depuración de Microsoft Visual Studio que muestra una tabla de datos de empleados con columnas para Nombre, Cargo y Salario, y muestra cinco registros de empleados leídos desde un archivo de Excel. La salida de la consola muestra correctamente los datos de los empleados importados desde el archivo Excel, con el formato adecuado que muestra nombres, puestos de trabajo e información salarial.
.
¿Cuáles son los siguientes pasos después de importar archivos de Excel?
Este artículo demostró cómo importar y leer un archivo Excel en C# sin tener Microsoft Excel instalado. Abarcó múltiples formas de leer datos de una hoja de cálculo de Excel, desde celdas individuales hasta hojas de trabajo completas. IronXL también le ayuda a crear archivos Excel en C# sin necesidad de instalar Excel.
Después de importar con éxito los datos de Excel, es posible que desee explorar funciones adicionales:
- Procesamiento de datos : ordenar rangos de celdas , aplicar filtros o agrupar filas y columnas
- Validación de datos : Implementar reglas de validación de datos para garantizar la integridad de los datos.
- Formato : aplicar estilo de celda , formato condicional o formatos de número
- Gráficos y elementos visuales : cree gráficos o agregue imágenes para mejorar la presentación de datos
- Seguridad : proteja con contraseña libros de trabajo u hojas de trabajo individuales
IronXL proporciona una solución integral para todas las tareas relacionadas con documentos de Microsoft Excel que se implementan programáticamente. Puede realizar cálculos con fórmulas , ordenar cadenas o números, recortar y agregar, buscar y reemplazar, fusionar y separar celdas , guardar archivos y mucho más. Puede editar valores de celdas y también establecer formatos de datos de celdas junto con validar datos de hojas de cálculo. También admite archivos CSV y le ayuda a trabajar con datos de Excel sin problemas.
Para aplicaciones empresariales, considere explorar opciones de implementación para varias plataformas, incluidos contenedores Docker , Azure Functions y AWS Lambda .
IronXL está disponible para una prueba gratuita y se puede obtener una licencia para uso comercial con su paquete Lite a partir de $799 únicamente. La biblioteca ofrece excelente documentación , tutoriales y ejemplos de código para ayudarlo a comenzar rápidamente con las operaciones con archivos de Excel en sus aplicaciones C#.
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.







