【问题标题】:The Microsoft Jet database engine could not find the object 'Sheet1$' in vb.netMicrosoft Jet 数据库引擎在 vb.net 中找不到对象“Sheet1$”
【发布时间】:2013-05-25 00:34:07
【问题描述】:

我正在尝试将 excel 工作表数据保存到数据集中。帮助我摆脱这个错误 Microsoft Jet 数据库引擎找不到对象“Sheet1$”。确保对象存在并且正确拼写其名称和路径名。 暗淡为 System.Data.DataSet 将 RecTab 调暗为 Data.DataTable 将 RecTab1 调暗为 Data.DataTable 将 Rectab2 调暗为 Data.DataTable 将 ds1 调暗为 System.Data.DataSet 将 HFCell 调暗为字符串 将 HCell 调暗为字符串 将文件路径变暗为字符串

    HFCell = "A1"
    HTCell = "B1"
    m_FileName = "Data.xls"
    FilePath = Server.MapPath("..\TankGauge\Data_Mgr") & "\" & m_FileName
    Try
        Dim connectionString As String = ""
        Try
            connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";" + "Extended Properties=Excel 8.0;"
            MyConnection = New OleDbConnection(connectionString)
            MyConnection.Open()

            dataAdapter = New OleDbDataAdapter("SELECT * FROM [Sheet1$]", MyConnection)

            ds = New Data.DataSet
            dataAdapter.Fill(ds)
            RecTab = ds.Tables(0)
            MyConnection.Close()

【问题讨论】:

  • 什么版本的Excel文件?是 XML 吗?
  • Ms office 2007(.Xls) 不是 xml
  • 嗯,那我不确定。但是,这是我使用的适合我的连接字符串:Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0}; Extended Properties="Excel 12.0 Xml;HDR=YES"
  • @MounikaReddy Jet.OLEDB.4.0 无法访问 xls 格式所以需要按照 Mike 说的使用 Ace.OLEDB.12.0。

标签: asp.net vb.net


【解决方案1】:

我相信您使用的数据库驱动程序不起作用。尝试改变:

connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";" + "Extended Properties=Excel 8.0;"

到:

connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + FilePath + ";" + "Extended Properties=Excel 8.0;"

【讨论】:

    【解决方案2】:

    在您的 Excel 工作簿中,是否有一个名为 Sheet1 的工作表?如果没有,请重命名工作表或更改代码以调出要从中获取数据的工作表。

    【讨论】:

    • 是的,我的 excel 与我已经检查过的名称相同,即使它显示错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多