@Test(expected=SpreadsheetReadException.class) public void testReadException() throws Exception { spreadsheetReader.read(new InputStream() { public int read() throws IOException { throw new IOException(); } }, new Range(0,1), new Range(0,1), false, new SpreadsheetRowProcessor() { public void processRow(int rowIndex, SortedMap<Integer, String> rowData) { } }); }
public void read(InputStream inputStream, Range rowRange, Range columnRange, boolean ignoreBlankRows, SpreadsheetRowProcessor rowProcessor) throws SpreadsheetReadException { CsvReader csvReader = new CsvReader(new InputStreamReader(inputStream)); csvReader.setSkipEmptyRecords(false); SortedMap<Integer, String> currentDataRow = new TreeMap<Integer, String>(); try { while(csvReader.readRecord()) { int rowIndex = (int) csvReader.getCurrentRecord(); boolean blankRow = true; if (rowRange.contains(rowIndex)) { for (int columnIndex = columnRange.getStart(); columnIndex <= columnRange.getEnd(); columnIndex++) { if (columnRange.contains(columnIndex)) { String value = csvReader.get(columnIndex); value = "".equals(value) ? null : value; if (value != null) { blankRow = false; } currentDataRow.put(columnIndex, value); if (columnIndex == columnRange.getEnd()) { if (!ignoreBlankRows || !blankRow) { rowProcessor.processRow(rowIndex, currentDataRow); } currentDataRow = new TreeMap<Integer, String>(); } } } if (rowIndex == rowRange.getEnd()) { break; } } } } catch (IOException e) { throw new SpreadsheetReadException("Unable to read CSV file", e); } }
CSVSpreadsheetReader implements SpreadsheetReader { public void read(InputStream inputStream, Range rowRange, Range columnRange, boolean ignoreBlankRows, SpreadsheetRowProcessor rowProcessor) throws SpreadsheetReadException { CsvReader csvReader = new CsvReader(new InputStreamReader(inputStream)); csvReader.setSkipEmptyRecords(false); SortedMap<Integer, String> currentDataRow = new TreeMap<Integer, String>(); try { while(csvReader.readRecord()) { int rowIndex = (int) csvReader.getCurrentRecord(); boolean blankRow = true; if (rowRange.contains(rowIndex)) { for (int columnIndex = columnRange.getStart(); columnIndex <= columnRange.getEnd(); columnIndex++) { if (columnRange.contains(columnIndex)) { String value = csvReader.get(columnIndex); value = "".equals(value) ? null : value; if (value != null) { blankRow = false; } currentDataRow.put(columnIndex, value); if (columnIndex == columnRange.getEnd()) { if (!ignoreBlankRows || !blankRow) { rowProcessor.processRow(rowIndex, currentDataRow); } currentDataRow = new TreeMap<Integer, String>(); } } } if (rowIndex == rowRange.getEnd()) { break; } } } } catch (IOException e) { throw new SpreadsheetReadException("Unable to read CSV file", e); } } }
CSVSpreadsheetReader implements SpreadsheetReader { public void read(InputStream inputStream, Range rowRange, Range columnRange, boolean ignoreBlankRows, SpreadsheetRowProcessor rowProcessor) throws SpreadsheetReadException { CsvReader csvReader = new CsvReader(new InputStreamReader(inputStream)); csvReader.setSkipEmptyRecords(false); SortedMap<Integer, String> currentDataRow = new TreeMap<Integer, String>(); try { while(csvReader.readRecord()) { int rowIndex = (int) csvReader.getCurrentRecord(); boolean blankRow = true; if (rowRange.contains(rowIndex)) { for (int columnIndex = columnRange.getStart(); columnIndex <= columnRange.getEnd(); columnIndex++) { if (columnRange.contains(columnIndex)) { String value = csvReader.get(columnIndex); value = "".equals(value) ? null : value; if (value != null) { blankRow = false; } currentDataRow.put(columnIndex, value); if (columnIndex == columnRange.getEnd()) { if (!ignoreBlankRows || !blankRow) { rowProcessor.processRow(rowIndex, currentDataRow); } currentDataRow = new TreeMap<Integer, String>(); } } } if (rowIndex == rowRange.getEnd()) { break; } } } } catch (IOException e) { throw new SpreadsheetReadException("Unable to read CSV file", e); } }  }
CSVSpreadsheetReader implements SpreadsheetReader { public void read(InputStream inputStream, Range rowRange, Range columnRange, boolean ignoreBlankRows, SpreadsheetRowProcessor rowProcessor) throws SpreadsheetReadException { CsvReader csvReader = new CsvReader(new InputStreamReader(inputStream)); csvReader.setSkipEmptyRecords(false); SortedMap<Integer, String> currentDataRow = new TreeMap<Integer, String>(); try { while(csvReader.readRecord()) { int rowIndex = (int) csvReader.getCurrentRecord(); boolean blankRow = true; if (rowRange.contains(rowIndex)) { for (int columnIndex = columnRange.getStart(); columnIndex <= columnRange.getEnd(); columnIndex++) { if (columnRange.contains(columnIndex)) { String value = csvReader.get(columnIndex); value = "".equals(value) ? null : value; if (value != null) { blankRow = false; } currentDataRow.put(columnIndex, value); if (columnIndex == columnRange.getEnd()) { if (!ignoreBlankRows || !blankRow) { rowProcessor.processRow(rowIndex, currentDataRow); } currentDataRow = new TreeMap<Integer, String>(); } } } if (rowIndex == rowRange.getEnd()) { break; } } } } catch (IOException e) { throw new SpreadsheetReadException("Unable to read CSV file", e); } }  void read(InputStream inputStream, Range rowRange,
			Range columnRange, boolean ignoreBlankRows,
			SpreadsheetRowProcessor rowProcessor); }
CSVSpreadsheetReader implements SpreadsheetReader { public void read(InputStream inputStream, Range rowRange, Range columnRange, boolean ignoreBlankRows, SpreadsheetRowProcessor rowProcessor) throws SpreadsheetReadException { CsvReader csvReader = new CsvReader(new InputStreamReader(inputStream)); csvReader.setSkipEmptyRecords(false); SortedMap<Integer, String> currentDataRow = new TreeMap<Integer, String>(); try { while(csvReader.readRecord()) { int rowIndex = (int) csvReader.getCurrentRecord(); boolean blankRow = true; if (rowRange.contains(rowIndex)) { for (int columnIndex = columnRange.getStart(); columnIndex <= columnRange.getEnd(); columnIndex++) { if (columnRange.contains(columnIndex)) { String value = csvReader.get(columnIndex); value = "".equals(value) ? null : value; if (value != null) { blankRow = false; } currentDataRow.put(columnIndex, value); if (columnIndex == columnRange.getEnd()) { if (!ignoreBlankRows || !blankRow) { rowProcessor.processRow(rowIndex, currentDataRow); } currentDataRow = new TreeMap<Integer, String>(); } } } if (rowIndex == rowRange.getEnd()) { break; } } } } catch (IOException e) { throw new SpreadsheetReadException("Unable to read CSV file", e); } }  void read(InputStream inputStream, Range rowRange,
			Range columnRange, boolean ignoreBlankRows,
			SpreadsheetRowProcessor rowProcessor);  }