OleDbConnection excelConnection=null;
try
{
if (Path.GetExtension(excelFileName).Equals(".xls"))
{
string conStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFileName + ";Extended Properties=" + "\"Excel 8.0 Xml;HDR=YES;IMEX=1;\"";
excelConnection = new OleDbConnection(conStr);
}
else
{
string conStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFileName + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1;\";";
excelConnection = new OleDbConnection(conStr);
}
excelConnection.Open(); ***// this statement get the error!!!***
}
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
这是我的连接字符串:
字符串1。
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\~Projects IW\Desktop APPS\Maga\Book1.xls;Extended Properties="Excel 8.0 Xml;HDR=YES;IMEX=1;"
字符串2。
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\~Projects IW\Desktop APPS\Maga\Book1.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1;";
使用连接字符串1读取xls文件时出错
“找不到可安装的isam”
但是使用连接字符串2读取xlsx文件;它工作正常:没有错误!
答案 0 :(得分:2)
错误是因为连接
.xls 尝试此连接字符串:
StrConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";";
和 .xlsx 尝试此连接字符串:
StrConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + srcFile + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";";
答案 1 :(得分:1)
您的第一个连接字符串包含Excel 8.0 Xml;
,但不起作用。请改用Excel 8.0;
。