Saltar al contenido

Cómo leer un archivo de Excel usando Spring Boot

Este dilema se puede solucionar de diferentes maneras, pero te enseñamos la resolución más completa en nuestra opinión.

Solución:

Finalmente encontré la solución.

El archivo html para cargar el formulario es

La clase de controlador es

@PostMapping("/import")
public void mapReapExcelDatatoDB(@RequestParam("file") MultipartFile reapExcelDataFile) throws IOException 
    
    List tempStudentList = new ArrayList();
    XSSFWorkbook workbook = new XSSFWorkbook(reapExcelDataFile.getInputStream());
    XSSFSheet worksheet = workbook.getSheetAt(0);
    
    for(int i=1;i

Asegúrate de agregar la dependencia


    org.apache.poi
    poi
    3.12



    org.apache.poi
    poi-ooxml
    3.12

Ahora funcionará bien.

Utilice la biblioteca de puntos de interés de Apache, que está fácilmente disponible mediante las dependencias de Maven.


    org.apache.poi
    poi-ooxml
    3.15
  

Código para leer el archivo

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;

public class ApachePOIExcelRead 

    private static final String FILE_NAME = "/tmp/MyFirstExcel.xlsx";

    public static void main(String[] args) 

        try 

            FileInputStream excelFile = new FileInputStream(new File(FILE_NAME));
            Workbook workbook = new XSSFWorkbook(excelFile);
            Sheet datatypeSheet = workbook.getSheetAt(0);
            Iterator iterator = datatypeSheet.iterator();

            while (iterator.hasNext()) 

                Row currentRow = iterator.next();
                Iterator cellIterator = currentRow.iterator();

                while (cellIterator.hasNext()) 

                    Cell currentCell = cellIterator.next();
                    //getCellTypeEnum shown as deprecated for version 3.15
                    //getCellTypeEnum ill be renamed to getCellType starting from version 4.0
                    if (currentCell.getCellTypeEnum() == CellType.STRING) 
                        System.out.print(currentCell.getStringCellValue() + "--");
                     else if (currentCell.getCellTypeEnum() == CellType.NUMERIC) 
                        System.out.print(currentCell.getNumericCellValue() + "--");
                    

                
                System.out.println();

            
         catch (FileNotFoundException e) 
            e.printStackTrace();
         catch (IOException e) 
            e.printStackTrace();
        

    

Modifique el programa anterior según sus requisitos. Si conoce el índice de la columna de su archivo de Excel, puede dirigir la fila para leer la celda, por ejemplorow.getCell(0) donde row objeto como XSSFRow row = (XSSFRow) iterator.next();

Espero que esto te ayude

Referencia

Si para ti ha sido de ayuda este post, sería de mucha ayuda si lo compartes con otros programadores de este modo contrubuyes a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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