Java – Leer archivo Excel

Para leer un archivo excel en Java con la extensión .xlsx usamos org.apache.poi cuya dependencia en Maven es la siguiente.

» Ver más ejemplos de Java

<dependency>
 <groupId>org.apache.poi</groupId>
 <artifactId>poi-ooxml</artifactId>
 <version>3.16</version>
</dependency>




Este será el archivo de excel que leeremos.

Leer archivo excel en JavaLeer archivo excel en Java

El código:

package com.decodigo.ejemplos;

import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 *
 * @author decodigo
 */
public class LeerExcel {
    public static void main(String args[]){
        try {
            String rutaArchivoExcel = "/ruta/ExcelEjemplo.xlsx";
            FileInputStream inputStream = new FileInputStream(new File(rutaArchivoExcel));
            Workbook workbook = new XSSFWorkbook(inputStream);
            Sheet firstSheet = workbook.getSheetAt(0);
            Iterator<Row> iterator = firstSheet.iterator();
            
            DataFormatter formatter = new DataFormatter();
            while (iterator.hasNext()) {
                Row nextRow = iterator.next();
                Iterator<Cell> cellIterator = nextRow.cellIterator();
                while(cellIterator.hasNext()) {
                    Cell cell = cellIterator.next();
                    String contenidoCelda = formatter.formatCellValue(cell);
                    System.out.println("celda: " + contenidoCelda);
                }
                
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

A continuación mostramos las partes más interesantes del código, con XSSFWorkbook y un FileInputStream comenzamos la lectura del archivo

Workbook workbook = new XSSFWorkbook(inputStream);

Nuestra instancia workbook nos permite leer una hoja de excel, indicando el índice en el cual se encuentra la información.  En este ejemplo de una sola hoja especificamos el índice cero.

Sheet firstSheet = workbook.getSheetAt(0);

A continuación comenzamos a iterar sobre cada fila o renglón que contiene la hoja de excel.

Iterator iterator = firstSheet.iterator();

while (iterator.hasNext()) { …

Después iteramos sobre el renglón para obtener sus celdas.

Iterator cellIterator = nextRow.cellIterator();

while(cellIterator.hasNext()) { …

Al obtener el valor de cada celda, también le estamos dando formato para poder mostrarlo como una cadena, de lo contrario tenemos que obtener el tipo de dato de cada celda antes de usar el método específico que permita extraer su valor de acuerdo a su tipo.  Con este paso nos saltamos esa validación previa.

String contenidoCelda = formatter.formatCellValue(cell);

Si corremos el ejemplo obtenemos este resultado:

Leer archivo excel en Java

El ejemplo es muy sencillo, pero te permitirá comenzar fácilmente con la lectura de archivos de Excel.

Más información en inglés: https://geekole.com/read-excel-file-with-apache-in-java/

1 comentario en «Java – Leer archivo Excel»

Deja un comentario

× 5 = fifteen