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.