2011-06-23 6 views
0

私のソースコードでは、Excel 2007スタイルシートの内容を読む必要があります。 だから、私が最初にそれをOleDbConnectionオブジェクトを設定します。ExcelスタイルシートへのOleDbConnection:シーンの背後にある要素は何ですか?

OleDbConnection conn = new OleDbConnection(String.Format(@"Provider = Microsoft.ACE.OLEDB.12.0;Data Source = {0};Extended Properties =""Excel 12.0 Xml;HDR=YES;IMEX=1"";", xlsFilePath)); 

これが私のコンピュータではなく、一度配置されたサーバ上で完璧に動作します:Microsoft.ACE.OLEDB.12.0が利用できるプロバイダではありません。それはおそらく私のコンピュータにOffice 2007を持っているからでしょう。残念ながら、私はサーバーにインストールすることはできません。

しかし、私はおそらく、サーバー上のプロバイダを含むdllのみをインストールすることができ、それは大丈夫だろう...限り、私は、その地獄のDLLが何であるかを知ることができるだろう!

これは私の頭が痛いところです:私は、デバッグウィンドウのメンバーツリーで自分の道を見つけることができませんExcel 12.0接続を処理するために動的にロードされている実際のコンポーネントを見つける:どのクラス?どのアセンブリ?いいえ、私は迷っています。

ご協力いただきますようお願い申し上げます。 :-)

+1

重複しているhttp://stackoverflow.com/questions/238625/microsoft-ace-oledb-12-0-provider-is-not-registered? –

+0

ACEを使用する必要がありますか?おそらくあなたのソリューションはJet(Microsoft.Jet.OLEDB.4.0)でも動作します - あなたのサーバーにプレインストールされているはずですか? (どのサーバーを使用していますか?) – Juliusz

答えて

0

最終的には、Office 2007のドライバをサーバーにインストールすることで問題を解決しました(Office 2007ドライバは、ライセンスに関してOffice 2007アプリケーションと同じ問題を伴いません)。ここで

リンクは次のとおりです。http://www.microsoft.com/download/en/confirmation.aspx?id=23734

それから私は

@"Provider = Microsoft.ACE.OLEDB.12.0;Data Source = {0};Extended Properties =""Excel 12.0 Xml;HDR=YES;IMEX=1"";" 

に私たconnectionStringを変更し、これは同じ質問に直面して誰かを助けることを願っています。 :-)