com.preparatic.csvreaders.FicheroExcel.java Source code

Java tutorial

Introduction

Here is the source code for com.preparatic.csvreaders.FicheroExcel.java

Source

/*******************************************************************************
 * Copyright (c) 2013, 2016 Preparatic and others.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *******************************************************************************/
package com.preparatic.csvreaders;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;

import com.preparatic.ConfigProperties;
import com.preparatic.entidades.InfoBloque;
import com.preparatic.entidades.InfoTema;
import com.preparatic.entidades.InfoTematica;
import com.preparatic.entidades.PreguntaTest;

public class FicheroExcel implements IExcel {

    private HSSFWorkbook fichero;
    private ArrayList<PreguntaTest> listaPreguntas;

    public FicheroExcel() {
        this.setFichero(null);
        this.setListaPreguntas(null);
    }

    /* (non-Javadoc)
     * @see com.preparatic.revisortests.IExcel#abrirExcel()
     */
    public void abrirExcel() throws IOException {
        FileInputStream excel = new FileInputStream(new File(ConfigProperties.getProperty("excel.ruta")));
        // Crear el objeto que tendra el libro de Excel
        this.fichero = new HSSFWorkbook(excel);

        recorrerExcel();
    }

    private void recorrerExcel() {
        this.listaPreguntas = new ArrayList<PreguntaTest>();

        /*
         * Obtenemos la primera pestaa que se quiera procesar indicando el
         * ndice. Una vez obtenida la hoja excel con las filas que se quieren
         * leer obtenemos el iterator que nos permite recorrer cada una de las
         * filas que contiene.
         */
        HSSFSheet sheet = this.fichero.getSheetAt(0);
        ArrayList<String> celdasPregunta = null;

        // Recorremos todas las filas para obtener el contenido de cada celda
        // int NumberOfRows = 8493; // sheet.getPhysicalNumberOfRows() devuelve
        // 1.000 filas adicionales. Para evitar esto, ponemos el n
        // directamente.

        int NumberOfRows = 11;

        for (int rowIndex = 0; rowIndex < NumberOfRows; rowIndex++) {
            Row fila = sheet.getRow(rowIndex);
            celdasPregunta = new ArrayList<String>();
            for (int columna = 0; columna < 20; columna++) {
                // If the cell is missing from the file, generate a blank one
                // (Works by specifying a MissingCellPolicy)
                Cell celda = fila.getCell(columna, Row.CREATE_NULL_AS_BLANK);
                celda.setCellType(Cell.CELL_TYPE_STRING);
                celdasPregunta.add(celda.getStringCellValue());
            }
            this.listaPreguntas.add(new PreguntaTest(celdasPregunta));
        }

        try {
            fichero.close(); // cerramos el libro excel
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // getters y setters

    public HSSFWorkbook getFichero() {
        return fichero;
    }

    public void setFichero(HSSFWorkbook fichero) {
        this.fichero = fichero;
    }

    /* (non-Javadoc)
     * @see com.preparatic.revisortests.IExcel#getListaPreguntas()
     */
    public ArrayList<PreguntaTest> getListaPreguntas() {
        return listaPreguntas;
    }

    public void setListaPreguntas(ArrayList<PreguntaTest> listaPreguntas) {
        this.listaPreguntas = listaPreguntas;
    }

    public ArrayList<InfoBloque> getListaBloques() {
        return null; // Not yet implemented
    }

    public ArrayList<InfoTema> getListaTemas() {
        return null; // Not yet implemented
    }

    public ArrayList<InfoTematica> getListaTematicas() {
        return null; // Not yet implemented
    }

}