asp.net – Microsoft Jet数据库引擎找不到对象’Sheet1 $’

前端之家收集整理的这篇文章主要介绍了asp.net – Microsoft Jet数据库引擎找不到对象’Sheet1 $’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试阅读名为Book1.xls的电子表格文件,其中包含名为Sheet1的工作表

但是我收到以下错误

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.

这是我正在使用的代码片段:

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

我无法理解为什么代码找不到我的工作表.为什么会这样,我该如何解决

解决方法

我发现了问题.

似乎电子表格被保存到错误的位置,因此filepath没有指向存在的文件.

我最初没有检查这个,因为我假设会出现不同的错误消息.像“Book1.xls”找不到的东西.但是,如果它不存在,那么该消息将只是声明它找不到工作表.

猜你在找的asp.Net相关文章