Funcionalidad.LeerExcel.java Source code

Java tutorial

Introduction

Here is the source code for Funcionalidad.LeerExcel.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Funcionalidad;

import Objetos.Asignatura;
import Objetos.Aula;
import Objetos.Grupo;
import Objetos.Profesor;
import Objetos.Titulacion;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Iterator;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 *
 * @author Portatil-pc
 */
public class LeerExcel {

    public LeerExcel() {

    }

    public boolean leer(File archivo, Contenedor almacenamiento) {
        boolean ok = true;
        try {
            FileInputStream fs = new FileInputStream(archivo);
            XSSFWorkbook workbook = new XSSFWorkbook(fs);
            for (int i = 0; i < 5; i++) {
                XSSFSheet sheet = null;
                sheet = workbook.getSheetAt(i);
                Iterator<Row> rowIterator = sheet.iterator();
                Row row;
                while (rowIterator.hasNext()) {
                    row = rowIterator.next();
                    Iterator<Cell> cellIterator = row.cellIterator();
                    Cell celda;
                    ArrayList<String> nombres = new ArrayList<>();
                    ArrayList<Integer> numeros = new ArrayList<>();
                    while (cellIterator.hasNext()) {
                        celda = cellIterator.next();
                        switch (celda.getCellType()) {
                        case Cell.CELL_TYPE_STRING:
                            nombres.add(celda.getStringCellValue());
                            break;
                        case Cell.CELL_TYPE_NUMERIC:
                            Double d = celda.getNumericCellValue();
                            numeros.add(d.intValue());
                            break;
                        }
                    }
                    switch (i) {
                    case 0:
                        almacenamiento.anadirProfesor(
                                new Profesor(nombres.get(0), nombres.get(1), nombres.get(2), numeros.get(0)));
                        break;
                    case 1:
                        almacenamiento
                                .anadidTitulacion(new Titulacion(numeros.get(0), nombres.get(0), numeros.get(1)));
                        break;
                    case 2:
                        almacenamiento.anadirAsignatura(new Asignatura(nombres.get(0),
                                almacenamiento.getProfesorPorId(numeros.get(0)), numeros.get(1),
                                almacenamiento.getTitulacionPorId(numeros.get(2)), numeros.get(3), numeros.get(4)));
                        break;
                    case 3:
                        almacenamiento.anadirAula(new Aula(numeros.get(0), nombres.get(0)));
                        break;
                    case 4:
                        almacenamiento.anadirGrupo(new Grupo(numeros.get(0),
                                almacenamiento.getAulaPorId(numeros.get(1)),
                                almacenamiento.getTitulacionPorId(numeros.get(2)), numeros.get(3), nombres.get(0)));
                        break;
                    }
                }
            }

        } catch (Exception ex) {
            //Logger.getLogger(LeerExcel.class.getName()).log(Level.SEVERE, null, ex);
            ok = false;
        }
        return ok;
    }

}