私は次のコードを持っています:
_string excelConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\db\suc.xls; Extended Properties=""Excel 12.0;HDR=YES;""";
// Create Connection to Excel Workbook
using (OleDbConnection connection =
new OleDbConnection(excelConnectionString))
{
OleDbCommand command = new OleDbCommand
("Select * FROM [Sheet1$]", connection);
connection.Open();
_
そして私は次のエラーを受け取ります:
インストール可能なISAMが見つかりませんでした。
connection.Open()
で。何か案は ?
Jet OLEDBドライバーの64ビットバージョンはないため、64ビットOSでこれを実行している場合は、x86
ではなく.NETアプリケーションでAny CPU
をターゲットにする必要があります。
同じエラーが発生しましたが、上記の提案はいずれも機能しませんでした。私の場合、私がしなければならなかったのは、接続文字列を次のように変更することだけでした。
string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FilePath + ";Extended Properties='Excel 12.0;IMEX=1;'";
拡張プロパティ属性( 'Excel 12.0; IMEX = 1;')を一重引用符で囲んでいることに注意してください。それらの一重引用符を追加すると、エラーは消えました!
最近のプロバイダーでxlsファイルを開こうとすると、この問題が発生していました。拡張プロパティをから変更することでこの問題を修正しました
Extended Properties="Excel 11.0;"
に
Extended Properties="Excel 8.0;"
Excel11はxlsxスタイルのファイルを想定していると思います。
64ビットWindowsおよび64ビットOffice(2010、2013)環境では、このエラーに関する多くの報告があります。修正または回避策は少し奇妙ですが、そこにいるほとんどの人にとってはうまくいくようです。
" Microsoft Accessデータベースエンジン2010再頒布可能パッケージ "インストールパッケージは自然に使用できるようですが、いくつかのレポートでは機能しないとのことです。
代わりに、「 2007 Office System Driver:Data Connectivity Components 」を使用すると、ほとんどの人にとって上記の問題が解決するようです。
使用する Extended properties="\Excel 8.0;