Leer datos en archivos de Excel usando C#

Los archivos de MS Excel se utilizan ampliamente para almacenar datos en forma de filas y columnas. En varios casos, los grandes conjuntos de datos también se mantienen en archivos de Excel. A menudo, tiene que leer archivos de Excel y obtener datos desde sus aplicaciones .NET. Para lograrlo con unos simples pasos, este artículo muestra cómo leer un archivo de Excel en C#. En particular, cubre cómo leer un archivo de Excel completo o solo una hoja de trabajo de él.

Biblioteca C# para leer archivos de Excel

Para leer datos de las hojas de trabajo, usaremos Aspose.Cells for .NET. Es una API potente y rica en funciones para crear y manipular archivos de Excel. Además, le permite leer archivos de Excel con bastante facilidad. La API puede descargarse desde la sección de descargas o instalarse a través de NuGet.

PM> Install-Package Aspose.Cells

Leer un archivo de Excel en C#

En los archivos de Excel, los datos se almacenan dentro de celdas donde cada celda se identifica por su nombre (A1, B3, etc.) o el índice de fila y columna. La colección de celdas forma una hoja de cálculo y un archivo de Excel puede contener una o varias hojas de cálculo. Finalmente, todas las hojas de trabajo forman colectivamente un Workbook. Aspose.Cells for .NET utiliza las mismas convenciones de nomenclatura para manipular archivos de Excel.

Los siguientes son los pasos para leer un archivo de Excel e imprimir sus datos usando C#.

  • Cargue el archivo de Excel usando la clase Workbook.
  • Cree un objeto de la clase WorksheetCollection y obtenga la referencia de las hojas de trabajo usando Workbook.Worksheets.
  • Inicie un bucle para recorrer todas las hojas de trabajo de la colección y, en cada iteración, realice los siguientes pasos:
    • Obtenga la referencia de la hoja de trabajo en un objeto Worksheet.
    • Obtenga el recuento de filas y columnas de datos en la hoja de cálculo.
    • Inicie un bucle para las filas.
    • Inicie un bucle anidado para columnas.
    • Lea los datos de cada celda usando la propiedad Worksheet.Cells[i, j].Value.

El siguiente ejemplo de código muestra cómo leer un archivo de Excel en C#.

// Cargar archivo de Excel
Workbook wb = new Workbook("excel.xlsx");

// Obtener todas las hojas de trabajo
WorksheetCollection collection = wb.Worksheets;

// Recorra todas las hojas de trabajo
for (int worksheetIndex = 0; worksheetIndex < collection.Count; worksheetIndex++)
{

    // Obtener hoja de trabajo usando su índice
    Worksheet worksheet = collection[worksheetIndex];

    // Imprimir el nombre de la hoja de trabajo
    Console.WriteLine("Worksheet: " + worksheet.Name);

    // Obtener el número de filas y columnas
    int rows = worksheet.Cells.MaxDataRow;
    int cols = worksheet.Cells.MaxDataColumn;

    // Bucle a través de filas
    for (int i = 0; i < rows; i++)
    {

        // Recorra cada columna en la fila seleccionada
        for (int j = 0; j < cols; j++)
        {
            // Valor de la celda de impresión
            Console.Write(worksheet.Cells[i, j].Value + " | ");
        }
        // Salto de línea de impresión
        Console.WriteLine(" ");
    }
}

El siguiente es el resultado que obtenemos en la consola después de ejecutar el ejemplo de código anterior.

Lectura de datos en las hojas de trabajo del archivo de Excel en C#

Leer un archivo de Excel en C#

Leer una hoja de trabajo particular en Excel en C#

También puede leer solo una hoja de trabajo en particular en el archivo de Excel siguiendo los pasos a continuación.

  • Cargue el archivo de Excel usando la clase Workbook.
  • Obtenga la referencia de la hoja de trabajo deseada en un objeto Worksheet usando Workbook.Worksheets[index].
  • Obtenga el recuento de filas y columnas de datos en la hoja de cálculo.
  • Inicie un bucle para las filas.
  • Inicie un bucle anidado para columnas.
  • Lea los datos de cada celda usando la propiedad Worksheet.Cells[i, j].Value.

El siguiente ejemplo de código muestra cómo leer datos de una hoja de cálculo particular en C#.

// Cargar archivo de Excel
Workbook wb = new Workbook("excel.xlsx");

// Obtener hoja de trabajo usando su índice
Worksheet worksheet = wb.Worksheets[0];

// Imprimir el nombre de la hoja de trabajo
Console.WriteLine("Worksheet: " + worksheet.Name);

// Obtener el número de filas y columnas
int rows = worksheet.Cells.MaxDataRow;
int cols = worksheet.Cells.MaxDataColumn;

// Bucle a través de filas
for (int i = 0; i < rows; i++)
{
    // Recorra cada columna en la fila seleccionada
    for (int j = 0; j < cols; j++)
    {
        // Valor de la celda de impresión
        Console.Write(worksheet.Cells[i, j].Value + " | ");
    }
    // Salto de línea de impresión
    Console.WriteLine(" ");
}

Obtenga una licencia de API gratuita

Puede usar Aspose.Cells for .NET sin limitaciones de evaluación al obtener una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a leer archivos de Excel de forma dinámica en C#. Con la ayuda de ejemplos de código, ha visto cómo leer datos de una hoja de cálculo en particular o de todas las hojas de cálculo de un libro de Excel. Además, puede explorar otras características de Aspose.Cells for .NET utilizando la documentación. En caso de que tenga alguna consulta, no dude en hacérnosla saber a través de nuestro foro.

Ver también