1
 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 ファイルを読み取ると、正常に動作します: エラーは発生しません!

4

2 に答える 2

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\";";
于 2015-01-31T10:11:13.037 に答える
1

最初の接続文字列には、Excel 8.0 Xml;機能しないものが含まれています。Excel 8.0;代わりに使用してください。

于 2013-04-27T08:08:52.390 に答える