public ExcelIterator() { iterator = sheet.iterator(); if (withFirstRecordAsHeader && iterator.hasNext()) { iterator.next();//Skip headers row } }
/** * Finds the first row that has a value in the first column * @param sheet * @return the index for the first row */ public static int findFirstRow(Sheet sheet) { int i = -1; Iterator<Row> iterator = sheet.iterator(); int cellType = -1; do { Cell cell = iterator.next().getCell(0); cellType = cell.getCellType(); i++; } while (cellType != Cell.CELL_TYPE_STRING && cellType != Cell.CELL_TYPE_NUMERIC && cellType != Cell.CELL_TYPE_FORMULA); return i; }
private void start() { boolean ok = false; try { Sheet s = getExcelSheet(false); it = s.iterator(); // find the start row if (log.isDebugEnabled()) { log.debug("Start reading from row " + Math.max(1, firstRow) + " of sheet: " + s.getSheetName()); } for (int i = 1; i < firstRow && it.hasNext(); i++) { it.next(); index++; } ok = true; } finally { if (!ok) { end(); } } }
private void start() { boolean ok = false; try { Sheet s = getExcelSheet(false); it = s.iterator(); // find the start row if (log.isDebugEnabled()) { log.debug("Start reading from row " + Math.max(1, firstRow) + " of sheet: " + s.getSheetName()); } for (int i = 1; i < firstRow && it.hasNext(); i++) { it.next(); index++; } ok = true; } finally { if (!ok) { end(); } } }
Workbook workbook = new XSSFWorkbook(ExcelFile); Sheet firstSheet = workbook.getSheetAt(0); Iterator<Row> iterator = firstSheet.iterator(); Row nextRow = iterator.next(); rowCount = firstSheet.getLastRowNum(); columnCount = nextRow.getLastCellNum();
public static boolean[] readXLSXRuleFile(String xlsxFileName, HashMap<Integer, Rule> rules, LinkedHashMap<String, TypeDefinition> typeDefinition, boolean caseSensitive, boolean[] ruleSupports) { try { FileInputStream inputStream = new FileInputStream(new File(xlsxFileName)); Workbook workbook = new XSSFWorkbook(inputStream); Sheet firstSheet = workbook.getSheetAt(0); Iterator<Row> iterator = firstSheet.iterator(); int id = 0; while (iterator.hasNext()) { Row nextRow = iterator.next(); Iterator<Cell> cellIterator = nextRow.cellIterator(); ArrayList<String> cells = new ArrayList<>(); while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); cell.setCellType(CellType.STRING); cells.add(cell.getStringCellValue()); } if (cells.size() > 0) ruleSupports = parseCells(cells, id, rules, typeDefinition, caseSensitive, ruleSupports); id++; } } catch (IOException e) { e.printStackTrace(); } return ruleSupports; }
@Override public Collection<Collection<Object>> read() { List<Collection<Object>> rows = Lists.newArrayList(); Iterator<Row> rowIterator = sheet.getNativeSheet().iterator(); boolean firstRow = true; while (rowIterator.hasNext()) {
Workbook workbook = new XSSFWorkbook(inputStream); Sheet firstSheet = workbook.getSheetAt(0); Iterator<Row> iterator = firstSheet.iterator(); while (iterator.hasNext()) { lineNumber++;
rows = workSheet.iterator(); lastRowNum = workSheet.getLastRowNum(); rowIdx = 0;
private List<T> parseCurrentSheet() throws IllegalAccessException, InstantiationException, InvocationTargetException, NoSuchMethodException { List<T> list = new ArrayList<>(); workbook = getWorkbook(); Sheet sheet = workbook.getSheetAt(this.sheetNumber); final FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); Map<Method, TableCellMapping> cellMappingByMethod = ImporterUtils.getMappedMethods(clazz, group); final Constructor<T> constructor = clazz.getDeclaredConstructor(); constructor.setAccessible(true); int i = 0; Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); i++; if (i <= headersRows) { continue; } T instance = constructor.newInstance(); for (Entry<Method, TableCellMapping> methodTcm : cellMappingByMethod.entrySet()) { TableCellMapping tcm = methodTcm.getValue(); ImporterUtils.parseSpreadsheetCell(tcm.converter(), evaluator, row.getCell(tcm.columnIndex()), methodTcm.getKey(), instance, exporterFormatter, useFormatterToParseValueAsString); } list.add(instance); } return list; }
private List<List<String>> parseCurrentSheetAsStringList() { workbook = getWorkbook(); Sheet sheet = workbook.getSheetAt(getSheetNumber()); final FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); Iterator<Row> rowIterator = sheet.iterator(); List<List<String>> list = new ArrayList<>(); int i = 0; while (rowIterator.hasNext()) { List<String> rowList = new ArrayList<>(); Row row = rowIterator.next(); i++; if (i <= headersRows) { continue; } Iterator<Cell> cells = row.cellIterator(); while (cells.hasNext()) { Cell cell = cells.next(); rowList.add(ImporterUtils.getValueOrEmpty(evaluator, cell, exporterFormatter)); } list.add(rowList); } return list; }
public ExcelIterator iteratorForSheet(int sheetNumber, boolean hasHeader) { ExcelIterator iterator = null; Sheet datatypeSheet = workbook.getSheetAt(sheetNumber); iterator = new ExcelIterator(datatypeSheet.iterator()); if(hasHeader && iterator.hasNext()) iterator.next(); // Skip header return iterator; }
public void extractAndSaveTimedValues(Sheet sheet, Importer importer, List<TimedValueExtractor> extractors){ int valueCount = 0; List<TimedValue> timedValueBuffer = new ArrayList<>(); // Extract timed values Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); for (TimedValueExtractor extractor : extractors) { extractor.setRow(row); try { TimedValue timedValue = extractor.extract(); timedValueBuffer.add(timedValue); valueCount++; if (valueCount % importer.getTimedValueBufferSize() == 0) { // Buffer is full ... we write values to db importer.saveAndClearTimedValueBuffer(timedValueBuffer); } }catch (BlankCellException e){ // We ignore this since there may be multiple blank cells in the data without having to worry }catch (ExtractorException e){ log.warn("Could not extract value: {}",e.getMessage()); } } } importer.saveAndClearTimedValueBuffer(timedValueBuffer); }
Iterator<Row> rowIter=sheet.iterator();
rowIterator = sheet.iterator();
rowIterator = sheet.iterator();
@Override public List<Attribute> getTimedValueAttributes(String datasourceID) throws Exception { RowCellExtractor attributeNameExtractor = new RowCellExtractor(0, CellType.STRING); if (null == getWorkbook()) { setWorkbook(excelUtils.getWorkbook( downloadUtils.fetchInputStream(new URL(DATAFILE), getProvider().getLabel(), DATAFILE_SUFFIX))); } Map<String, Attribute> attributes = new HashMap<>(); Sheet sheet = workbook.getSheetAt(3); Iterator<Row> rowIterator = sheet.iterator(); Row header = rowIterator.next(); while (rowIterator.hasNext()){ Row row = rowIterator.next(); attributeNameExtractor.setRow(row); String attributeLabel = attributeNameExtractor.extract(); if (!attributes.containsKey(attributeLabel)) attributes.put( attributeLabel, new Attribute(getProvider(), attributeLabel, attributeLabel) ); } workbook.close(); return new ArrayList<>(attributes.values()); } }
rowIterator = sheet.iterator();
Iterator<Row> rowIter = sheet.iterator();
Iterator<Row> rowIterator = sheet.iterator(); Row header = rowIterator.next(); while (rowIterator.hasNext()) {