加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 04:35:56 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试阅读名为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 co
我正在尝试阅读名为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”找不到的东西.但是,如果它不存在,那么该消息将只是声明它找不到工作表.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读