If you are open to other approaches I'd suggest to use LinqToExcel you can find it on NuGet, this way you'll end up with a IQueryable object instead of some messy Dataset, e.g.:
Defining your entity:
class MyType
{
public string A { get; set; }
public string B { get; set; }
public string C { get; set; }
}
If you know the range you want to read you can do something like:
var excel=new ExcelQueryFactory(@"c:\temp\temp.xlsx");
var q = from r in excel.WorksheetRange<MyType>("A9","C12")
select r;
Then you can use q to filter, iterate, etc...
If you don't know how many rows are there in the file to define the range you can do something like this instead:
var excel=new ExcelQueryFactory(@"c:\temp\temp.xlsx");
int rowCount=excel.WorksheetNoHeader().Count();
var q = from r in excel.WorksheetRange<MyType>("A9","C"+rowCount)
select r;