Leer datos en archivos de Excel usando Java

Los archivos de MS Excel se utilizan en gran medida para mantener datos tabulares en forma de hojas de trabajo. A menudo, los grandes conjuntos de datos también se mantienen en archivos de Excel. Por lo tanto, puede encontrarse con el escenario en el que necesita leer y obtener datos de las hojas de trabajo en un archivo de Excel. Para lograrlo, este artículo muestra cómo leer un archivo de Excel en Java. Demostraremos cómo leer todo el archivo de Excel o solo una hoja de trabajo mediante programación.

Biblioteca Java para leer archivos de Excel

Para leer datos de las hojas de trabajo, usaremos Aspose.Cells for Java. Es una API de manipulación de hojas de cálculo para crear archivos de Excel desde cero. Además, le permite leer y manipular archivos de Excel existentes con bastante facilidad. La API puede descargarse desde la sección de descargas o instalarse agregando las siguientes configuraciones de Maven en pom.xml.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells</artifactId>
    <version>21.11</version>
</dependency>

Leer un archivo de Excel en Java

En los archivos de Excel, los datos se almacenan en celdas donde cada celda se identifica por su nombre (A1, B3, etc.) o el índice de fila y columna. Estas celdas forman colectivamente una hoja de cálculo y un archivo de Excel se compone de una o varias hojas de cálculo. Todas las hojas de trabajo están contenidas en un Workbook. Esta fue una breve descripción de la estructura de un archivo de Excel. Procedamos ahora a leer datos de un archivo de Excel.

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

  • 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 el método Workbook.getWorksheets().
  • Inicie un bucle para recorrer todas las hojas de trabajo de la colección y, en cada iteración, realice los siguientes pasos:

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

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

// Obtener todas las hojas de trabajo
WorksheetCollection collection = wb.getWorksheets();

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

  // Obtener hoja de trabajo usando su índice
  Worksheet worksheet = collection.get(worksheetIndex);

  // Imprimir el nombre de la hoja de trabajo
  System.out.print("Worksheet: " + worksheet.getName());

  // Obtener el número de filas y columnas
  int rows = worksheet.getCells().getMaxDataRow();
  int cols = worksheet.getCells().getMaxDataColumn();

  // 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
	System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");
    }
    // Salto de línea de impresión
    System.out.println(" ");
  }
}

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 Java

Leer un archivo de Excel en Java

Leer una hoja de trabajo particular en Excel en Java

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

El siguiente ejemplo de código muestra cómo leer datos de una hoja de trabajo particular en Java.

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

// Obtener la referencia de la hoja de trabajo
Worksheet worksheet = wb.getWorksheets().get(0);

// Obtener el recuento de filas y columnas
int rows = worksheet.getCells().getMaxDataRow();
int cols = worksheet.getCells().getMaxDataColumn();

// 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++) {

    // Imprimir valor de celda
    System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");

  }
  // Salto de línea de impresión
  System.out.println(" ");
}

Obtenga una licencia de API gratuita

Puede usar Aspose.Cells for Java 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 Java. 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 Java 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