Ignore empty rows in Excel spreadsheets
diff --git a/plugins/org.eclipse.epsilon.common/src/org/eclipse/epsilon/common/util/Wrapper.java b/plugins/org.eclipse.epsilon.common/src/org/eclipse/epsilon/common/util/Wrapper.java
new file mode 100644
index 0000000..c2a728e
--- /dev/null
+++ b/plugins/org.eclipse.epsilon.common/src/org/eclipse/epsilon/common/util/Wrapper.java
@@ -0,0 +1,17 @@
+package org.eclipse.epsilon.common.util;
+
+public class Wrapper<T> {
+	protected T value;
+
+	public Wrapper(T value) {
+		this.value = value;
+	}
+
+	public T getValue() {
+		return value;
+	}
+
+	public void setValue(T value) {
+		this.value = value;
+	}
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.epsilon.emc.spreadsheets.excel/src/org/eclipse/epsilon/emc/spreadsheets/excel/ExcelWorksheet.java b/plugins/org.eclipse.epsilon.emc.spreadsheets.excel/src/org/eclipse/epsilon/emc/spreadsheets/excel/ExcelWorksheet.java
index c71ecbc..4c8b035 100644
--- a/plugins/org.eclipse.epsilon.emc.spreadsheets.excel/src/org/eclipse/epsilon/emc/spreadsheets/excel/ExcelWorksheet.java
+++ b/plugins/org.eclipse.epsilon.emc.spreadsheets.excel/src/org/eclipse/epsilon/emc/spreadsheets/excel/ExcelWorksheet.java
@@ -15,9 +15,11 @@
 import java.util.Map;

 

 import org.apache.poi.ss.usermodel.Cell;

+import org.apache.poi.ss.usermodel.CellType;

 import org.apache.poi.ss.usermodel.Row;

 import org.apache.poi.ss.usermodel.Sheet;

 import org.eclipse.epsilon.common.util.StringUtil;

+import org.eclipse.epsilon.common.util.Wrapper;

 import org.eclipse.epsilon.emc.spreadsheets.SpreadsheetColumn;

 import org.eclipse.epsilon.emc.spreadsheets.SpreadsheetRow;

 import org.eclipse.epsilon.emc.spreadsheets.SpreadsheetWorksheet;

@@ -85,7 +87,16 @@
 		for (int i = this.getFirstRowIndex(); i <= numOfRows; i++) {

 			final Row row = this.sheet.getRow(i);

 			if (row != null) {

-				rows.add(new ExcelRow(this, row));

+				

+				// Only consider rows with at least one non-blank cell

+				final Wrapper<Boolean> emptyRow = new Wrapper<Boolean>(true);

+				row.cellIterator().forEachRemaining(cell -> {

+					if (!(cell.getCellType() == CellType.BLANK)) { 

+						emptyRow.setValue(false); 

+					}

+				});

+				

+				if (!emptyRow.getValue()) rows.add(new ExcelRow(this, row));

 			}

 		}

 		return rows;

@@ -132,5 +143,4 @@
 	public int getFirstRowIndex() {

 		return 1;

 	}

-

 }