Your options if the above is not working is to use OpenXML (which take sometime to learn), a free library such as EPPlus or a third party paid for library.
EPPlus example taken from here.
Option Infer On
Public Shared Function getDataTableFromExcel(ByVal path As String) As DataTable
Using pck = New OfficeOpenXml.ExcelPackage()
Using stream = File.OpenRead(path)
pck.Load(stream)
End Using
Dim ws = pck.Workbook.Worksheets.First()
Dim tbl As New DataTable()
Dim hasHeader As Boolean = True ' adjust it accordingly( i've mentioned that this is a simple approach)
For Each firstRowCell In ws.Cells(1, 1, 1, ws.Dimension.End.Column)
tbl.Columns.Add(If(hasHeader, firstRowCell.Text, String.Format("Column {0}", firstRowCell.Start.Column)))
Next firstRowCell
Dim startRow = If(hasHeader, 2, 1)
For rowNum = startRow To ws.Dimension.End.Row
Dim wsRow = ws.Cells(rowNum, 1, rowNum, ws.Dimension.End.Column)
Dim row = tbl.NewRow()
For Each cell In wsRow
row(cell.Start.Column - 1) = cell.Text
Next cell
tbl.Rows.Add(row)
Next rowNum
Return tbl
End Using
End Function