Estoy intentando leer un archivo de hoja de cálculo llamada Book1.xls
que contiene una hoja de cálculo llamada Sheet1
Sin embargo estoy recibiendo el siguiente error:
The Microsoft Jet database engine could not find the object 'Sheet1$'. Make sure the object exists and that you spell its name and the path name correctly.
Aquí hay un fragmento del código que estoy usando:
Dim dt As DataTable = New DataTable()
Select Case fileExt
Case ".csv"
Dim reader As New CsvReader
dt = reader.GetDataTable(filePath)
Case ".xls", ".xlsx"
Dim oleDbConnStr As String
Select Case fileExt
Case ".xls"
oleDbConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=2"""
Case ".xlsx"
oleDbConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & filePath & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=2"""
End Select
Using oleDbConn As OleDbConnection = New OleDbConnection(oleDbConnStr)
oleDbConn.Open()
Dim oleDbCmd As New OleDbCommand("SELECT * FROM [Sheet1$]", oleDbConn)
Dim oleDbDa As New OleDbDataAdapter(oleDbCmd)
oleDbDa.Fill(dt)
oleDbConn.Close()
End Using
End Select
no puedo entender por qué el código no puede encontrar mi hoja de trabajo. ¿Por qué es esto y cómo puedo resolverlo?
intente una vez con la ruta de absoulte: origen de datos = C: \\ myexcel.xls; –
@AshwiniVerma 'filepath' es la ruta absoluta porque uso' Server.MapPath() ' – Curt
visite este enlace e intente obtener el nombre de la hoja mediante la programación: http://forums.asp.net/t/1751143.aspx/1 –