Cómo abrir archivos de Excel en C#
IronXL permite a los desarrolladores de C# abrir, leer y manipular archivos de Excel sin necesidad de instalar Microsoft Office. Simplemente cargue libros de trabajo usando WorkBook.Load() , acceda a las hojas de trabajo y lea los valores de las celdas con una sintaxis intuitiva como sheet["A1"] .
Este tutorial explora el uso de IronXL para abrir y leer archivos de Excel en proyectos de C#, brindando a los desarrolladores jóvenes ejemplos completos y mejores prácticas para trabajar con datos de Excel .
¿Qué es la biblioteca IronXL Excel?
IronXL es una biblioteca .NET que prioriza la facilidad de uso, la precisión y la velocidad. Le ayuda a abrir, leer, crear y editar archivos de Excel de manera eficiente sin necesidad de interoperabilidad de MS Office, lo que lo convierte en una opción práctica para los desarrolladores que buscan trabajar con Excel en C# sin interoperabilidad .
IronXL es compatible con todos los marcos .NET junto con Linux , macOS , Docker , Azure y AWS . Puede usarlo para crear aplicaciones de consola, web y de escritorio, como Blazor y .NET MAUI para aplicaciones web modernas. Admite diferentes formatos de libros de trabajo, como archivos XLS y XLSX, XSLT y XLSM, CSV y TSV.
¿Cuáles son las características principales de IronXL?
- Abra, lea y busque datos en formatos XLS/XLSX/CSV/TSV utilizando LoadSpreadsheets .
- Exporte hojas de cálculo de Excel a múltiples formatos con Guardar y exportar .
- Cifrar y descifrar archivos con contraseñas utilizando funciones seguras .
- Trabaje con hojas de Excel como objetos
DataSetyDataTablea través de la integración de DataSet . - Las fórmulas de Excel se recalculan automáticamente y admiten funciones matemáticas .
- Edite datos de hojas de cálculo con una sintaxis de rango intuitiva como
WorkSheet["A1:B10"]. - Ordenar rangos de celdas , columnas y filas .
- Estilo de celdas con formatos de fuente , fondo , borde , alineación y número .
¿Cómo abrir un archivo de Excel en C#?
¿Qué necesito antes de empezar?
Para usar IronXL en aplicaciones C#, instala los siguientes componentes en tu computadora local:
- Visual Studio : el IDE oficial para desarrollar aplicaciones C# .NET. Puedes descargar e instalar Visual Studio desde el sitio web de Microsoft. También puedes utilizar
JetBrainsReSharpery Rider . Para obtener orientación adicional sobre la configuración, consulte la Descripción general de primeros pasos . - IronXL : la biblioteca de Excel que ayuda a trabajar con hojas de Excel en C#. Debe instalarse en su aplicación C# antes de usarla. Puede descargarlo desde el sitio web de NuGet o desde Administrar paquetes NuGet en Visual Studio. También puedes descargar directamente el archivo .NET Excel DLL. Para la implementación de la licencia, consulte Uso de claves de licencia .
¿Qué espacios de nombres debo importar?
Una vez que Visual Studio e IronXL estén instalados, agrega los espacios de nombres necesarios de IronXL incluyendo la siguiente línea en la parte superior de tu archivo C#:
// Add reference to the IronXL library
using IronXL;// Add reference to the IronXL library
using IronXL;Para trabajar con formatos específicos de Excel o funciones avanzadas, es posible que también necesite:
using IronXL.Formatting; // For cell styling
using IronXL.Drawing; // For images and charts
using System.Data; // For DataSet/DataTable operationsusing IronXL.Formatting; // For cell styling
using IronXL.Drawing; // For images and charts
using System.Data; // For DataSet/DataTable operations¿Cómo cargo un archivo Excel existente?
Los archivos de Excel, también conocidos como libros de trabajo, consisten en múltiples hojas de trabajo, cada una con valores de celda. Para abrir y leer un archivo Excel , cárguelo utilizando el método Load de la clase WorkBook . La funcionalidad LoadSpreadsheets admite varios formatos.
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
// You can also load from streams for web applications
// using (var stream = File.OpenRead("test.xlsx"))
// {
// WorkBook workbook = WorkBook.Load(stream);
// }// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
// You can also load from streams for web applications
// using (var stream = File.OpenRead("test.xlsx"))
// {
// WorkBook workbook = WorkBook.Load(stream);
// }Esto inicializa el libro de trabajo como una instancia de WorkBook. Para abrir una WorkSheet específica, recupérela de la colección WorkSheets . La guía Administrar hojas de trabajo proporciona más detalles sobre las operaciones de las hojas de trabajo:
// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();
// Alternative ways to access worksheets
WorkSheet sheetByIndex = workbook.WorkSheets[0]; // By index
WorkSheet sheetByName = workbook.GetWorkSheet("Sheet1"); // By name// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();
// Alternative ways to access worksheets
WorkSheet sheetByIndex = workbook.WorkSheets[0]; // By index
WorkSheet sheetByName = workbook.GetWorkSheet("Sheet1"); // By nameEsto accede a la primera hoja en el archivo de Excel, lista para lectura y escritura.
¿Cómo leo datos de las celdas de Excel?
Una vez abierto el archivo Excel, está listo para leer datos. Leer datos de archivos de Excel en C# usando IronXL es sencillo. Puede leer valores de celda especificando la referencia de celda mediante la funcionalidad Seleccionar rango .
El siguiente código recupera el valor de una celda:
// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;
// You can also retrieve values in different formats
string textValue = sheet["C2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
DateTime dateValue = sheet["C2"].DateTimeValue;
bool boolValue = sheet["C2"].BoolValue;
// Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}");
// Check if cell is empty before reading
if (!sheet["C2"].IsEmpty)
{
Console.WriteLine($"Cell value: {sheet["C2"].Value}");
}// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;
// You can also retrieve values in different formats
string textValue = sheet["C2"].StringValue;
decimal decimalValue = sheet["C2"].DecimalValue;
DateTime dateValue = sheet["C2"].DateTimeValue;
bool boolValue = sheet["C2"].BoolValue;
// Display the value in the console
Console.WriteLine($"Cell C2 contains: {cellValue}");
// Check if cell is empty before reading
if (!sheet["C2"].IsEmpty)
{
Console.WriteLine($"Cell value: {sheet["C2"].Value}");
}El resultado es el siguiente:
Para leer datos de un rango de celdas, utilice un bucle para iterar a través del rango especificado. El ejemplo Seleccionar rango de Excel proporciona más patrones:
// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read an entire column
foreach (var cell in sheet.GetColumn(0)) // Column A
{
if (!cell.IsEmpty)
{
Console.WriteLine($"Column A value: {cell.Text}");
}
}
// Read an entire row
foreach (var cell in sheet.GetRow(1)) // Row 2
{
Console.WriteLine($"Row 2 value: {cell.Text}");
}// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Read an entire column
foreach (var cell in sheet.GetColumn(0)) // Column A
{
if (!cell.IsEmpty)
{
Console.WriteLine($"Column A value: {cell.Text}");
}
}
// Read an entire row
foreach (var cell in sheet.GetRow(1)) // Row 2
{
Console.WriteLine($"Row 2 value: {cell.Text}");
}Cada valor en el rango de celdas A2:A6 se accede y se imprime en la consola.
Para obtener ejemplos de lectura y escritura más detallados, consulte el tutorial de lectura de Excel en C# . También puede convertir datos de Excel a DataTables para una manipulación más sencilla:
// Convert worksheet to DataTable for easier data manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers
// Access data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
Console.WriteLine($"Employee: {row["Name"]}, Salary: {row["Salary"]}");
}// Convert worksheet to DataTable for easier data manipulation
DataTable dataTable = sheet.ToDataTable(true); // true = first row contains headers
// Access data using DataTable methods
foreach (DataRow row in dataTable.Rows)
{
Console.WriteLine($"Employee: {row["Name"]}, Salary: {row["Salary"]}");
}¿Cómo puedo crear un nuevo archivo de Excel?
IronXL también facilita la creación de nuevos libros de trabajo para guardar y recuperar datos. La guía Crear hojas de cálculo proporciona ejemplos completos.
Puedes crear un nuevo archivo de Excel con una sola línea de código:
// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);
// Alternative: Create with XLS format for compatibility
WorkBook xlsWorkBook = new WorkBook(ExcelFileFormat.XLS);
// Set workbook metadata
workBook.Metadata.Title = "Employee Data";
workBook.Metadata.Author = "Your Name";
workBook.Metadata.Keywords = "employees, salary, data";// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);
// Alternative: Create with XLS format for compatibility
WorkBook xlsWorkBook = new WorkBook(ExcelFileFormat.XLS);
// Set workbook metadata
workBook.Metadata.Title = "Employee Data";
workBook.Metadata.Author = "Your Name";
workBook.Metadata.Keywords = "employees, salary, data";A continuación, crea una hoja de trabajo y añade datos a ella. Para obtener patrones de creación más avanzados, consulte Crear un nuevo archivo de Excel .
¿Cómo agrego hojas de trabajo a un libro de trabajo?
// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");
// Create multiple worksheets at once
WorkSheet sheet2 = workBook.CreateWorkSheet("PopulationData");
WorkSheet sheet3 = workBook.CreateWorkSheet("Summary");
// Copy an existing worksheet
WorkSheet copiedSheet = workSheet.CopySheet("GDPByCountryCopy");// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");
// Create multiple worksheets at once
WorkSheet sheet2 = workBook.CreateWorkSheet("PopulationData");
WorkSheet sheet3 = workBook.CreateWorkSheet("Summary");
// Copy an existing worksheet
WorkSheet copiedSheet = workSheet.CopySheet("GDPByCountryCopy");Este código añade una hoja de trabajo llamada "GDPByCountry" al libro de trabajo, permitiéndote añadir valores a celdas. Obtenga más información sobre cómo administrar hojas de trabajo y copiar hojas de trabajo .
Para establecer un valor para una celda específica, utiliza el siguiente código:
// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";
// Add different types of data
workSheet["A2"].Value = 12345; // Integer
workSheet["A3"].Value = 99.99m; // Decimal
workSheet["A4"].Value = DateTime.Now; // Date
workSheet["A5"].Value = true; // Boolean
// Add formulas
workSheet["B1"].Formula = "=SUM(A2:A3)";
// Set multiple cells at once using a range
workSheet["C1:C5"].Value = "Bulk Value";
// Save the workbook
workBook.SaveAs("output.xlsx");// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";
// Add different types of data
workSheet["A2"].Value = 12345; // Integer
workSheet["A3"].Value = 99.99m; // Decimal
workSheet["A4"].Value = DateTime.Now; // Date
workSheet["A5"].Value = true; // Boolean
// Add formulas
workSheet["B1"].Formula = "=SUM(A2:A3)";
// Set multiple cells at once using a range
workSheet["C1:C5"].Value = "Bulk Value";
// Save the workbook
workBook.SaveAs("output.xlsx");El resultado final es:
Hoja de cálculo de Excel que muestra la celda A1 rellena con el texto "Ejemplo" agregado programáticamente con C#, con la pestaña GDPByCountry visible y la celda resaltada para mostrar el valor agregado. Añadir Valor a la Celda
Trabajar con diferentes formatos de Excel
IronXL admite múltiples formatos de Excel. A continuación se explica cómo manejar diferentes tipos de archivos:
// Convert between formats
WorkBook workbook = WorkBook.Load("data.csv");
workbook.SaveAs("data.xlsx"); // Convert CSV to XLSX
// Export to different formats
workbook.SaveAsCsv("output.csv", ";"); // CSV with semicolon delimiter
workbook.SaveAsJson("output.json"); // Export as JSON
workbook.SaveAsXml("output.xml"); // Export as XML// Convert between formats
WorkBook workbook = WorkBook.Load("data.csv");
workbook.SaveAs("data.xlsx"); // Convert CSV to XLSX
// Export to different formats
workbook.SaveAsCsv("output.csv", ";"); // CSV with semicolon delimiter
workbook.SaveAsJson("output.json"); // Export as JSON
workbook.SaveAsXml("output.xml"); // Export as XMLObtenga más información sobre la conversión de tipos de archivos de hojas de cálculo y la conversión de XLSX a CSV, JSON, XML .
Manejo de errores y buenas prácticas
Al trabajar con archivos de Excel, implemente un manejo de errores adecuado:
try
{
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.GetWorkSheet("Sheet1");
// Check if sheet exists
if (sheet == null)
{
Console.WriteLine("Worksheet not found!");
return;
}
// Process data
var value = sheet["A1"].Value;
}
catch (Exception ex)
{
Console.WriteLine($"Error reading Excel file: {ex.Message}");
}try
{
WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet sheet = workbook.GetWorkSheet("Sheet1");
// Check if sheet exists
if (sheet == null)
{
Console.WriteLine("Worksheet not found!");
return;
}
// Process data
var value = sheet["A1"].Value;
}
catch (Exception ex)
{
Console.WriteLine($"Error reading Excel file: {ex.Message}");
}Para aplicaciones de producción, considere configurar el registro e implementar patrones adecuados de manejo de errores .
¿Qué hemos aprendido?
Este artículo demuestra cómo abrir y leer archivos de Excel, como XLS y XLSX, en C# usando IronXL. IronXL no requiere que Microsoft Excel esté instalado en el sistema para tareas relacionadas con Excel, lo que lo hace perfecto para implementaciones de Docker y funciones de Azure .
IronXL proporciona una solución integral para tareas relacionadas con Excel de forma programática, incluido el cálculo de fórmulas , la ordenación de cadenas, el recorte , la búsqueda y el reemplazo, la fusión y separación de archivos, el guardado de archivos y más. También puede establecer formatos de datos de celdas, trabajar con formato condicional y crear gráficos .
Para obtener funciones avanzadas, explore la agrupación y desagrupación , los rangos con nombre , los hipervínculos y la protección de archivos de Excel . La referencia API completa proporciona documentación detallada para todas las funciones.
IronXL está disponible para una prueba gratuita de 30 días y puede licenciarse para uso comercial. El paquete Lite de IronXL comienza desde $799. Para obtener recursos adicionales, visite la sección de tutoriales o explore ejemplos de código para escenarios comunes.
Preguntas Frecuentes
¿Cómo puedo abrir archivos de Excel en C# sin usar Interop?
Puede abrir archivos de Excel en C# sin usar Interop utilizando la biblioteca IronXL. Use el método WorkBook.Load para cargar un archivo de Excel en una instancia de WorkBook, lo que le permite acceder y manipular datos dentro del archivo.
¿Qué formatos de archivo son compatibles con esta biblioteca de Excel para C#?
IronXL admite una variedad de formatos de archivo de Excel, incluidos XLS, XLSX, CSV y TSV. Esto permite a los desarrolladores abrir, leer y escribir en estos formatos de manera flexible dentro de sus aplicaciones C#.
¿Puedo editar archivos de Excel en C# usando esta biblioteca?
Sí, puede editar archivos de Excel usando IronXL. Después de cargar un libro de trabajo, puede modificar datos, agregar nuevas hojas de trabajo y luego guardar los cambios en el archivo o exportarlo en varios formatos.
¿Cómo instalo esta biblioteca para usarla en mi proyecto C#?
Para instalar IronXL en su proyecto C#, puede usar el Administrador de paquetes NuGet en Visual Studio para agregar la biblioteca. Alternativamente, puede descargar el DLL de Excel para .NET y hacer referencia a él en su proyecto.
¿Es posible cifrar archivos de Excel con esta biblioteca?
Sí, IronXL le permite cifrar y descifrar archivos de Excel. Puede asegurar sus documentos de Excel con contraseñas para proteger datos sensibles durante las operaciones de archivo.
¿Esta biblioteca admite recálculos de fórmulas en hojas de Excel?
IronXL admite recálculos automáticos de fórmulas, asegurando que cualquier cambio en los datos actualice automáticamente las fórmulas, como en Excel.
¿Cómo puedo leer valores de celdas específicas en una hoja de trabajo de Excel usando esta biblioteca?
Para leer valores de celdas específicas utilizando IronXL, puede hacer referencia a la celda utilizando la notación de Excel. Por ejemplo, sheet["A1"].StringValue recuperará el valor de cadena de la celda A1.
¿Puede esta biblioteca ser utilizada a través de diferentes sistemas operativos?
Sí, IronXL es compatible con múltiples sistemas operativos, incluidos Windows, Linux y macOS. También admite la implementación en entornos Docker, Azure y AWS.
¿Cuáles son las ventajas de usar esta biblioteca sobre MS Office Interop?
IronXL ofrece varias ventajas sobre MS Office Interop, como no requerir que Excel esté instalado en el sistema, mejor rendimiento en entornos de servidor y facilidad de uso con aplicaciones modernas .NET.
¿Hay una prueba gratuita disponible para esta biblioteca de Excel en C#?
Sí, IronXL ofrece una prueba gratuita de 30 días, permitiéndole probar sus características y capacidades antes de decidir sobre una licencia comercial para sus proyectos.







