"找不到可安装的ISAM" - " .xlsx"阅读没有错误,但阅读" xls" file在Windows 7 32bit上获取该错误

时间:2013-04-27 07:05:07

标签: c# ms-access oledb

 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文件;它工作正常:没有错误!

2 个答案:

答案 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;