¿Cómo escribir datos de un archivo de Excel en un HashMap usando Java y Apache POI?

Apache POI es una biblioteca Java de código abierto para crear y manipular varios formatos de archivo basados ​​en Microsoft Office. Usando POI, uno debería poder realizar operaciones de creación, modificación y visualización/lectura en los siguientes formatos de archivo. Por ejemplo, Java no proporciona soporte integrado para trabajar con archivos de Excel, por lo que debemos buscar API de código abierto para el trabajo. En este artículo, vamos a discutir cómo escribir los datos de un archivo de Excel en un HashMap en Java usando Apache POI. HashMap es un tipo de colección en Java que contiene un par clave-valor para almacenar los datos. Apache POI es una biblioteca Java de código abierto para manipular documentos de Microsoft como Excel, Word, etc.

Requisito previo

Para trabajar con este ejemplo, necesitamos lo siguiente:

  • Java instalado en su sistema, para instalar Java consulte este artículo .
  • Instale también el IDE de Eclipse para desarrolladores de Java aquí .
  • Después de eso, crea un Proyecto Maven

Para crear un proyecto Maven, consulte Cómo crear un proyecto Selenium Maven con Eclipse para abrir el navegador Chrome.

  • Agregue la dependencia para Apache POI y Apache-ooxml en el archivo POM.xml
  • Vaya al repositorio de MVN https://mvnrepository.com/.
  • Buscar el punto de interés de Apache

 

 

  • Copie y pegue estas dependencias en pom.xml y luego guárdelo.

Analicemos esto con un ejemplo, ahora cree un archivo de Excel con algunos datos, tenemos que leer los datos de este archivo y escribirlos en HashMap. Veamos este ejemplo con codificación práctica.

 

Programa para escribir datos de un archivo de Excel en un HashMap

Java

package GFG_Maven.GFG_MAven;
  
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.testng.annotations.Test;
  
public class Geeks {
    @Test public void geekforgeeks() throws IOException
    {
  
        FileInputStream file = new FileInputStream(
            "C:\\Users\\ADMIN\\Desktop\\data.xlsx");
        XSSFWorkbook wb = new XSSFWorkbook(file);
        XSSFSheet sh = wb.getSheet("Sheet1");
  
        HashMap<Integer, String> map
            = new HashMap<Integer, String>();
  
        for (int r = 0; r <= sh.getLastRowNum(); r++) {
            int key = (int)sh.getRow(r)
                          .getCell(0)
                          .getNumericCellValue();
            String value = sh.getRow(r)
                               .getCell(1)
                               .getStringCellValue();
            map.put(key, value);
        }
  
        // Displaying HashMap
        Iterator<Entry<Integer, String> > new_Iterator
            = map.entrySet().iterator();
  
        while (new_Iterator.hasNext()) {
            Map.Entry<Integer, String> new_Map
                = (Map.Entry<Integer, String>)
                      new_Iterator.next();
  
            System.out.println(new_Map.getKey() + "|"
                               + new_Map.getValue());
        }
        wb.close();
        file.close();
    }
}

Código Explicación

  • Abra el archivo en el flujo de entrada.
  • Cree el libro de trabajo y obtenga la hoja para ese Excel.
  • Declare HashMap para almacenar los datos de Excel.
  • Repita las filas para obtener la clave y los datos de valor.
  • Agregue los datos al HashMap usando el método put.
  • Para mostrar HashMap iterar a través del mapa e imprimir la salida.

Producción

Después de ejecutar el código anterior, obtendremos todos los datos en Excel almacenados en HashMap y se imprimirán.

Output

 

Publicación traducida automáticamente

Artículo escrito por allwink45 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *