I did what @dash suggested and used Excel Data Reader and it works correctly.
here is the code
FileStream stream = File.Open(strNewPath , FileMode.Open, FileAccess.Read);
//1. Reading from a binary Excel file ('97-2003 format; *.xls)
//IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
//...
//2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);;
excelReader.IsFirstRowAsColumnNames = true;
DataSet result = excelReader.AsDataSet();