@Test
public void testIgnoreBlankRows() throws Exception {

	String[] testFiles2 = new String[] { "/test-spreadsheet.ods" };
	for (int i = 0; i < testFiles2.length; i++) {
		final List<Integer> rows = new ArrayList<Integer>(Arrays.asList(0, 1, 2, 3, 4, 9, 10, 11, 12, 13, 14));
		spreadsheetReader.read(getClass().getResourceAsStream(testFiles2[i]), new Range(0, -1), new Range(0, 4), true,
				new SpreadsheetRowProcessor() {
					public void processRow(int rowIndex, SortedMap<Integer, String> row) {
						assertTrue(rows.remove((Integer) rowIndex));
						List<Integer> columns = new ArrayList<Integer>(Arrays.asList(0, 1, 2,
								3, 4));
						for (Entry<Integer, String> cell : row.entrySet()) {
							assertTrue(columns.remove(cell.getKey()));
							if (rowIndex == 0) {
								if (cell.getKey().equals(0)) {
									assertEquals("A", cell.getValue());
								} else if (cell.getKey().equals(1)) {
									assertEquals("5.0", cell.getValue());
								} else if (cell.getKey().equals(2)) {
									assertEquals("C", cell.getValue());
								} else if (cell.getKey().equals(3)) {
									assertEquals("1.0", cell.getValue());
								} else {
									assertNull(cell.getValue());
								}
							} else if (rowIndex == 1) {
								if (cell.getKey().equals(0)) {
									assertEquals("A", cell.getValue());
								} else if (cell.getKey().equals(1)) {
									assertEquals("5.0", cell.getValue());
								} else if (cell.getKey().equals(2)) {
									assertEquals("C", cell.getValue());
								} else if (cell.getKey().equals(3)) {
									assertEquals("1.0", cell.getValue());
								} else {
									assertNull(cell.getValue());
								}
							} else if (rowIndex == 2) {
								if (cell.getKey().equals(0)) {
									assertEquals("true", cell.getValue());
								} else if (cell.getKey().equals(1)) {
									assertEquals("2009-06-15", cell.getValue());
								} else if (cell.getKey().equals(2)) {
									assertNull(cell.getValue());
								} else if (cell.getKey().equals(3)) {
									assertEquals("2.0", cell.getValue());
								} else {
									assertNull(cell.getValue());
								}
							} else if (rowIndex == 3 || rowIndex == 4) {
								if (cell.getKey().equals(4)) {
									assertNull(cell.getValue());
								} else {
									assertEquals("X", cell.getValue());
								}
							} else if (rowIndex == 9 || rowIndex == 10 || rowIndex == 11
									|| rowIndex == 12 || rowIndex == 13 || rowIndex == 14) {
								if (cell.getKey().equals(4)) {
									assertNull(cell.getValue());
								} else {
									assertEquals("y", cell.getValue());
								}
							}
						}
						assertTrue(columns.isEmpty());
					}
				});
		assertTrue(rows.isEmpty());
	}
}