1

私はこのMSDNページの例にほぼ従っています:

http://code.msdn.microsoft.com/Imoprt-Data-from-Excel-to-705ecfcd

1つの例外を除いて。のような単純なクエリの代わりに

"Select * FROM [Sheet1$]"

次のようなもう少し複雑なことをしたいと思います。

"Select *, SUBSTRING(COLUMN_A, 1, 5) as STRIPPED_COL_A FROM [Sheet1$]"

しかし、役に立たない例外メッセージ「IErrorInfo.GetDescriptionがE_FAIL(0x80004005)で失敗しました」が表示されます。

推測しなければならない場合、問題は、ExcelまたはOleDBでサポートされていないSUBSTRING関数を使用していることが原因です。それで、問題を回避する方法。

4

1 に答える 1

7

彼らの例では、Microsoft.ACE.OLEDBドライバーを使用してExcelシートをロードしているので、MSAccessProvider=Microsoft.ACE.OLEDB.12.0Provider=Microsoft.Jet.OLEDB.4.0で使用可能なクエリの書式設定と機能を使用する必要があります。

Select *, MID(Column_A, <<start>>, <<length>>) as STRIPPED_COL_A from [Sheet1$]

<<start>>ゼロインデックスが付けられておらず、代わりに文字列の最初の文字が1で始まるなど、他の特性に注意してください。

于 2012-05-02T04:38:42.717 に答える