微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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”找不到的东西.但是,如果它不存在,那么该消息将只是声明它找不到工作表.

原文地址:https://www.jb51.cc/aspnet/248786.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐