尝试访问Excel时,外部表未出现预期的格式错误

vc9ivgsu  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(162)

我正在尝试使用Oledb连接从vb应用程序访问Excel。下面是我的连接字符串:

<add key="ExcelConnection" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=&quot;Excel 12.0 Xml;HDR=NO;IMEX=1;MAXSCANROWS=1000;READONLY=FALSE;&quot;" />

下面是代码:

Dim connection As New System.Data.OleDb.OleDbConnection(ExcelConnectionString)
 connection .Open()
 Dim schTbl As DataTable = connection .GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, Nothing)

 Dim dbAdapter As System.Data.OleDb.OleDbDataAdapter
 Dim execQuery As String
 Dim rtnData As System.Data.DataTable

 execQuery = "SELECT * FROM [" & schTbl.Rows.Item(0)("TABLE_NAME") & "]"

    dbAdapter = New System.Data.OleDb.OleDbDataAdapter(execQuery , ExcelConnectionString)

    dbAdapter.Fill(rtnDat )

    dbAdapter.Dispose()
    connection .Close()
    schTbl .Reset()

我的问题是,以上是工作的70%的时间,但其余的时间,我得到以下错误:

System.Data.OleDb.OleDbException (0x80004005): External table is not in the expected format.

有没有人能帮助我,为什么有时我会得到这个错误。有没有办法纠正它或任何其他方法来达到同样的结果。
任何帮助都将不胜感激。
谢谢

djmepvbi

djmepvbi1#

External table is not in the expected format.通常在尝试使用Excel 2007文件时发生。
使用下面的连接字符串似乎可以解决大多数问题。

dim path as string = yourfilepath
dim connStr as string = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;"
    • 编辑**

有时候这也可能失败在一个情况下当你正在使用一个.xlsx文件.如果那是这情况你应该安装一个JET数据库引擎在你的pc覆盖那些www.example.com是可用的http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=enerrors.it is availale http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en

相关问题