Example usage for org.apache.poi.xssf.usermodel XSSFSheet iterator

List of usage examples for org.apache.poi.xssf.usermodel XSSFSheet iterator

Introduction

In this page you can find the example usage for org.apache.poi.xssf.usermodel XSSFSheet iterator.

Prototype

@Override
public Iterator<Row> iterator() 

Source Link

Document

Alias for #rowIterator() to allow foreach loops

Usage

From source file:onboardsoftware.ReadXLSX.java

public ArrayList<Task> getTasks(String tabela) {
    ArrayList<Task> tasks = new ArrayList<Task>();
    FileInputStream spreadSheet = null;
    try {// ww w.j  av  a  2s  .c o  m
        File file = new File(tabela);
        spreadSheet = new FileInputStream(file);
        try {
            //planilha com todas as abas
            XSSFWorkbook workbook = new XSSFWorkbook(spreadSheet);
            //primeira planilha
            XSSFSheet sheet = workbook.getSheetAt(0);
            //todas as linhas da planilha[0]
            Iterator<Row> rowIterator = sheet.iterator();
            //varre todas as linhas da planilha[0]
            while (rowIterator.hasNext()) {
                //pegando cada linha
                Row row = rowIterator.next();
                //todas as celulas de cada linha
                Iterator<Cell> cellIterator = row.iterator();
                //varre todas as celulas
                System.out.println();
                ArrayList<Cell> list = new ArrayList<Cell>();
                while (cellIterator.hasNext()) {
                    //minha celula
                    Cell cell = cellIterator.next();
                    list.add(cell);
                }
                Task task = new Task(list);

                tasks.add(task);
            }
        } catch (IOException ex) {
            Logger.getLogger(ReadXLSX.class.getName()).log(Level.SEVERE, null, ex);
        }
    } catch (FileNotFoundException ex) {
        Logger.getLogger(ReadXLSX.class.getName()).log(Level.SEVERE, null, ex);
    } finally {
        try {
            spreadSheet.close();
        } catch (IOException ex) {
            Logger.getLogger(ReadXLSX.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    return tasks;
}

From source file:opn.greenwebs.FXMLDocumentController.java

private void getData() {
    try {/*from   ww w.j a  va 2 s . c  o  m*/
        fStockDir = new File(fUserDir, "Stock");
        if (!fStockDir.exists()) {
            fStockDir.mkdirs();
        }
        FilenameFilter xlsxFilter = (File dir, String name) -> {
            String lowercaseName = name.toLowerCase();
            return lowercaseName.endsWith(".xlsx");
        };

        File[] fStock = fStockDir.listFiles(xlsxFilter);
        for (File excel : fStock) {
            try (FileInputStream fis = new FileInputStream(excel); XSSFWorkbook book = new XSSFWorkbook(fis)) {
                XSSFSheet sheet = book.getSheet("Digital Version");
                List<XSSFTable> lstTables = sheet.getTables();
                if (!lstTables.isEmpty()) {
                    shootTables(sheet, lstTables);
                } else {
                    //System.out.println("we have one without a table");
                    Iterator<Row> itr = sheet.iterator();
                    boolean bData = false;
                    int nRow = 0;
                    while (itr.hasNext()) {
                        Row row = itr.next();
                        int nCou = 0;

                        Iterator<Cell> cellIterator = row.cellIterator();
                        List lstItem = new ArrayList();
                        while (cellIterator.hasNext()) {
                            Cell cell = cellIterator.next();
                            switch (cell.getCellType()) {
                            case Cell.CELL_TYPE_STRING:
                                String strCell = cell.getStringCellValue();
                                if (strCell.equalsIgnoreCase("Qty")) {
                                    nCou = nRow + 1;
                                }
                                if (bData) {
                                    lstItem.add(strCell);
                                }
                                break;
                            case Cell.CELL_TYPE_NUMERIC:
                                if (bData) {
                                    lstItem.add(cell.getNumericCellValue());
                                }
                                break;
                            case Cell.CELL_TYPE_BOOLEAN:
                                if (bData) {
                                    lstItem.add(cell.getBooleanCellValue());
                                }
                                break;
                            case Cell.CELL_TYPE_BLANK:
                                if (bData) {
                                    lstItem.add("");
                                }
                                break;
                            case Cell.CELL_TYPE_FORMULA:
                                if (bData) {
                                    lstItem.add(cell.getCellFormula());
                                }
                                break;
                            default:
                            }
                        }
                        if (bData) {
                            System.out.print(lstItem);
                            insertData(lstItem, true);
                        }
                        nRow++;
                        if (nCou == nRow) {
                            bData = true;
                        }
                    }
                    //bIsGood = false;
                }
            }
        }
    } catch (FileNotFoundException fe) {
        //System.out.println("File not found exception " + fe.getMessage());
    } catch (IOException ie) {
        //System.out.println("IO Exception " + ie.getMessage());
    }
}

From source file:org.argrr.extractor.excel.SpreadSheetTab.java

License:Open Source License

public SpreadSheetTab(XSSFSheet sheet) {
    this.sheet = sheet;
    columnNames = new ArrayList<String>();
    lines = new ArrayList<HashMap<String, String>>();

    //iterate throw the first line in order to have columns names
    Iterator<Row> rowIterator = sheet.iterator();
    Row curRow = rowIterator.next();//  ww w  . j  a v a 2 s .c o m
    for (int cn = 0; cn < curRow.getLastCellNum(); cn++) {

        Cell cell = curRow.getCell(cn, Row.CREATE_NULL_AS_BLANK);
        columnNames.add(cell.getStringCellValue());
    }

    //Iterate through each other rows in order to have datas
    while (rowIterator.hasNext()) {
        Row row = rowIterator.next();
        HashMap<String, String> curLine = new HashMap<String, String>();

        //For each row, iterate through all the columns
        for (int id = 0; id < columnNames.size(); id++) {

            //add empty cells names if there are more cols in values than header def
            if (id >= this.columnNames.size())
                this.columnNames.add("");

            Cell cell = row.getCell(id, Row.CREATE_NULL_AS_BLANK);
            if (id == 0 && cell.getCellType() == Cell.CELL_TYPE_BLANK) {
                break;
            }

            String cellVal = "";
            //Check the cell type and format accordingly
            switch (cell.getCellType()) {
            case Cell.CELL_TYPE_NUMERIC:
                if (DateUtil.isCellDateFormatted(cell)) {
                    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
                    cellVal = sdf.format(cell.getDateCellValue());
                } else {
                    cellVal = Integer.valueOf(Double.valueOf(cell.getNumericCellValue()).intValue()).toString();
                }
                break;
            case Cell.CELL_TYPE_STRING:
                cellVal = cell.getStringCellValue();
                break;
            }
            curLine.put(this.getColumnName(id), cellVal);
        }
        if (curLine.size() > 0)
            lines.add(curLine);
    }
}

From source file:org.rakuten.util.XLSUtility.java

License:Open Source License

/**
 * @param fileLocation// w w w .jav a  2  s .  c  o m
 * @return Iterator of Row
 * This method take file path as input and return iterator or rows, it will return null if file does not exists or its corrupted
 * 
 */
private Iterator<Row> getSheetData(String fileLocation) {
    File file = new File(fileLocation);
    if (!file.exists())
        return null;
    try {
        FileInputStream fileStream = new FileInputStream(file);
        XSSFWorkbook workbook = new XSSFWorkbook(fileStream);
        XSSFSheet sheet = workbook.getSheetAt(0);
        Iterator<Row> iterator = sheet.iterator();
        try {
            workbook.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return iterator;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}

From source file:org.tinywind.springi18nconverter.converter.ExcelConverter.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public void decode(File sourceFile, String targetDir, String targetEncoding, Boolean describeByNative) {
    final String sourceFileName = sourceFile.getName().toLowerCase();
    if (Arrays.stream(JS_POSTFIX_ARRAY).filter(
            postfix -> sourceFileName.lastIndexOf(postfix) == sourceFileName.length() - postfix.length())
            .count() == 0)//from w w w .  j  ava2s  .c  o  m
        return;

    try {
        final Map<String, List<String>> stringListMap = new HashMap<>();
        final FileInputStream file = new FileInputStream(sourceFile);
        Iterator<Row> rowIterator;
        try {
            final XSSFWorkbook workbook = new XSSFWorkbook(file);
            final XSSFSheet sheet = workbook.getSheetAt(0);
            rowIterator = sheet.iterator();
        } catch (OfficeXmlFileException e) {
            System.err.println(" exception:" + e.getMessage());
            final HSSFWorkbook workbook = new HSSFWorkbook(file);
            final HSSFSheet sheet = workbook.getSheetAt(0);
            rowIterator = sheet.iterator();
        }

        while (rowIterator.hasNext()) {
            final Row row = rowIterator.next();
            final String key = row.getCell(COLUMN_KEY).getStringCellValue();
            final String language = row.getCell(COLUMN_LANG).getStringCellValue();
            final String value = row.getCell(COLUMN_VALUE).getStringCellValue().trim();
            if (StringUtils.isEmpty(key) || StringUtils.isEmpty(language) || StringUtils.isEmpty(value))
                continue;

            List<String> stringList = stringListMap.get(language);
            if (stringList == null) {
                stringList = new ArrayList<>();
                stringListMap.put(language, stringList);
            }

            final String newLine = "\\\n";
            String lastValue = "", token;
            final BufferedReader reader = new BufferedReader(new StringReader(value));
            while ((token = reader.readLine()) != null)
                lastValue += token + newLine;
            reader.close();
            if (lastValue.lastIndexOf(newLine) == lastValue.length() - newLine.length())
                lastValue = lastValue.substring(0, lastValue.length() - newLine.length());

            addProperty(stringList, key, lastValue, describeByNative);
        }

        for (String language : stringListMap.keySet()) {
            Files.write(Paths.get(new File(targetDir, messagesPropertiesFileName(language)).toURI()),
                    stringListMap.get(language), Charset.forName(targetEncoding), StandardOpenOption.CREATE,
                    StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.WRITE);
        }
    } catch (Exception e) {
        System.err.println(" FAIL to convert: " + sourceFile.getAbsolutePath());
        e.printStackTrace();
    }
}

From source file:org.wandora.application.tools.extractors.excel.ExcelAdjacencyListExtractor.java

License:Open Source License

public void processSheet(XSSFSheet sheet, TopicMap tm) {
    Iterator<Row> rowIterator = sheet.iterator();
    boolean isFirst = true;
    rolesPerColumn = new HashMap();
    while (rowIterator.hasNext() && !forceStop()) {
        Row row = rowIterator.next();//from   w ww  .  j  a v a  2 s  .c  om
        if (isFirst && FIRST_ROW_CONTAINS_ROLES) {
            processRowAsRoles(row, tm);
            isFirst = false;
        } else {
            processRow(row, tm);
        }
    }
}

From source file:org.wandora.application.tools.extractors.excel.ExcelAdjacencyMatrixExtractor.java

License:Open Source License

public void processSheet(XSSFSheet sheet, TopicMap tm) {
    Iterator<Row> rowIterator = sheet.iterator();
    boolean isFirst = true;
    columnLabels = new HashMap();
    rowLabels = new HashMap();
    while (rowIterator.hasNext() && !forceStop()) {
        Row row = rowIterator.next();/*from   w ww . j  ava  2s.co  m*/
        if (isFirst) {
            processAsLabels(row, tm);
            isFirst = false;
        } else {
            processRow(row, tm);
        }
    }
}

From source file:org.wandora.application.tools.extractors.excel.ExcelTopicExtractor.java

License:Open Source License

public void processSheet(XSSFSheet sheet, TopicMap tm) {
    Iterator<Row> rowIterator = sheet.iterator();
    while (rowIterator.hasNext() && !forceStop()) {
        Row row = rowIterator.next();/*from   w  w w  . ja  v  a2s. co  m*/
        processRow(row, tm);
    }
}

From source file:org.wandora.application.tools.extractors.excel.ExcelTopicNameExtractor.java

License:Open Source License

public void processSheet(XSSFSheet sheet, TopicMap tm) {
    Iterator<Row> rowIterator = sheet.iterator();
    boolean isFirst = true;
    languagesPerColumn = new HashMap();
    while (rowIterator.hasNext() && !forceStop()) {
        Row row = rowIterator.next();//from  ww w  .  ja va2 s.  c om
        if (isFirst && FIRST_ROW_CONTAINS_LANGUAGES) {
            processRowAsLanguages(row, tm);
            isFirst = false;
        } else {
            processRow(row, tm);
        }
    }
}

From source file:org.wandora.application.tools.extractors.excel.ExcelTopicOccurrenceExtractor.java

License:Open Source License

public void processSheet(XSSFSheet sheet, TopicMap tm) {
    Iterator<Row> rowIterator = sheet.iterator();
    boolean isFirst = true;
    occurrenceTypes = new HashMap();
    while (rowIterator.hasNext() && !forceStop()) {
        Row row = rowIterator.next();//from w ww  .  ja v  a2  s  .c  o m
        if (isFirst && FIRST_ROW_CONTAINS_OCCURRENCE_TYPES) {
            processRowAsOccurrenceTypes(row, tm);
            isFirst = false;
        } else {
            processRow(row, tm);
        }
    }
}