public static ParseResult Parse(Stream excelFile, int worksheetPosition, int surnameCol, int forenamesCol, int resultCol, int startRow)
{
using (var xlPackage = new ExcelPackage(excelFile))
{
var worksheet = xlPackage.Workbook.Worksheets[worksheetPosition];
var results = new List<ResultRow>();
var lastRow = worksheet.Cells.End.Row;
var row = startRow;
while (row < lastRow)
{
var surname = worksheet.GetValue<string>(row, surnameCol);
var forenames = worksheet.GetValue<string>(row, forenamesCol);
var result = worksheet.GetValue<decimal?>(row, resultCol);
if (string.IsNullOrWhiteSpace(surname) && string.IsNullOrWhiteSpace(forenames))
{
break;
}
results.Add(new ResultRow(surname, forenames, result));
row++;
}
return new ParseResult(results);
}
}