2012-02-17 11 views
0

私のローカルPCはWindows7の64bit版やMicrosoft Excelでインストールされている2010私は、この接続文字列を得た。しかし、私のクライアントのPCのほとんどがXP ProfessionalのService Pack 3およびExcel 2003の読むExcelファイル

ある エクセルのインポートデータは

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"; 

ファイルしかし、これは

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine. 

が、私は自分のアプリケーションの両方でExcelファイルを読み込むことができますしたいというエラーがスローされます、のx86 AN d x64、アーキテクチャ。 PCに余分なExcelドライバをインストールしなくても、プログラムでこれを処理できますか?

私は、CPUのアーキテクチャに基づいてExcelファイルをインポートするために、別の接続文字列を使用することを考えています。

良いアイデアはありますか?

+2

接続文字列をハードコードしていますか?もしそうなら、どちらが、なぜですか?相対パスの使用を検討しましたか? –

+0

私はx86とx64両方のPCで動作するExcelファイルをインポートするための接続文字列を要求しています。 –

+1

http:// http://connectionstrings.com/ –

答えて

0

これは、Visual Studioでコンパイル構成とシステムにインストールされているACEのバージョンの間に不整合です。 (Ref: How to read or write excel file using ACE OLEDB data provider?

両方が同じであることを確認することで解決できます。 64ビットACEがインストールされている場合はx64ビットを使用してアプリケーションをコンパイルするか、32ビットACEを使用します。