Buenas,
Para hacer eso, yo lo hago de la siguiente manera (adjunto trozo de codigo)
Try Dim conexion As System.Data.OleDb.OleDbConnection Dim DtSet As System.Data.DataSet Dim comando As System.Data.OleDb.OleDbDataAdapter conexion = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source='c:\excel.xls'; Extended Properties=Excel 8.0;") comando = New System.Data.OleDb.OleDbDataAdapter("select * from [Hoja1$]", conexion) DtSet = New System.Data.DataSet comando.Fill(DtSet) conexion.Close() Catch ex As Exception End Try
En el ejemplo aqui puesto pilla un excel 2003 de c:\ llamado excel.xsl, si el tuyo es 2007 la cadena de conexion cambia un poco.
Puedes comprobar que el dataset se llena perfectamente con los datos de la tabla del excel.
Saludos.
EDITO: Creo que la cadena de conexion para 2007 es algo así:
Dim excelConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FicheroExcel + ";Extended Properties=""Excel 12.0 Xml;HRD=NO"""