Have a look at https://github.com/ExcelDataReader/ExcelDataReader.
It will load the excel object into a DataReader which you can then use to to bind into your presentation layer.
var _excelFile = new FileInfo("location_of_excel_file");
if (_excelFile != null && _excelFile.Exists)
{
var fs = File.Open(_excelFile.FullName, FileMode.Open, FileAccess.Read);
var ext = _excelFile.Extension.Replace('.', ' ').Trim();
using (IExcelDataReader excelReader = ext == "xls"
? ExcelReaderFactory.CreateBinaryReader(fs)
: ExcelReaderFactory.CreateOpenXmlReader(fs))
{
DataTable baseData = null;
DataSet result = excelReader.AsDataSet();
for (int i = 0; i < result.Tables.Count; i += 1)
{
if (result.Tables[i].TableName.ToLower().Contains("sheet1"))
{
baseData = result.Tables[i];
}
}
if (baseData != null)
{
int line = 0;
foreach (DataRow row in baseData.Rows)
{
}
}
}
}