1

次の問題があります。Excel ファイルからデータを読み取るアプリケーションはほとんどありません。ここに私の接続文字列があります:

            @"Provider=Microsoft.ACE.OLEDB.12.0;"+
            @"Data Source=" + m_excelFileName + ";" +
            @"Extended Properties=Excel 12.0;"

私がそれを使用すると、すべてがうまく機能しますが、Excel ファイルの最初の行のデータが列名として読み取られます。私はそれをしたくないので、接続文字列を変更してこれを追加する必要があります:

           @"Provider=Microsoft.ACE.OLEDB.12.0;"+
           @"Data Source=" + m_excelFileName + ";" +
           @"Extended Properties=Excel 12.0;"+
           @"HDR=NO;";

理由はわかりませんが、読み取り機能が機能せず、次のように伝えています。

Could not find installable ISAM

何がうまくいかないのですか?アドバイスをありがとう。

4

3 に答える 3

1

拡張プロパティを引用符で囲んでみてください...

"Provider=Microsoft.ACE.OLEDB.12.0;"+
"Data Source=" + m_excelFileName + ";" +
"Extended Properties=\"Excel 12.0;"+
"HDR=NO;\"";

引用符をエスケープする必要があるため、「@」を削除します

于 2011-01-30T22:59:57.580 に答える
1

マイクロソフトのサポートから:

プロバイダーは、フィールドに F1、F2 などの名前を付けます。拡張プロパティ文字列には複数の値が含まれるようになったため、それ自体を二重引用符で囲む必要があります。さらに、二重引用符のペアを追加して、最初の引用符セットをリテラルとして扱うように Visual Basic に指示します。次の例のように値を指定します (視覚的にわかりやすくするために余分なスペースが追加されています)。

パイロットカムの回答をサポートします。

幸運を!

于 2011-01-30T23:03:24.413 に答える
0

よく理解できているかわかりません。piloctam のコードを試してみましたが、何かがうまくいきません。いくつかの引用は良くありません。おそらく1行で:

@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + m_excelFileName + ";Extended Properties=Excel 12.0; HDR=NO;";

それは大丈夫です?

于 2011-01-30T23:16:58.640 に答える