我正在尝试使用Oledb连接从vb应用程序访问Excel。下面是我的连接字符串:
<add key="ExcelConnection" value="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties="Excel 12.0 Xml;HDR=NO;IMEX=1;MAXSCANROWS=1000;READONLY=FALSE;"" />
下面是代码:
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.
有没有人能帮助我,为什么有时我会得到这个错误。有没有办法纠正它或任何其他方法来达到同样的结果。
任何帮助都将不胜感激。
谢谢
1条答案
按热度按时间djmepvbi1#
External table is not in the expected format.
通常在尝试使用Excel 2007文件时发生。使用下面的连接字符串似乎可以解决大多数问题。
有时候这也可能失败在一个情况下当你正在使用一个
.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