3

Win7マシンでVS2010を使用して.NET4.0フレームワークでASP.NETC#アプリケーションを実行しています。コード内で、Excelファイルを「DataTable」オブジェクトにリンクしたいと思います。つまり、Excelファイル内のデータにアクセスし、それをDataTableオブジェクトに保存したいと思います。そこで、次のコードスニペットを使用しました。

_

_connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"" + excelFile + "\";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'";
        }

DataTable table = new DataTable();
            OleDbCommand command = new OleDbCommand();
            command.Connection = new OleDbConnection(_connectionString);
            command.CommandType = CommandType.Text;
            command.CommandText = "select * from [NameOFExcelSheet$A1:D20]";  // Want to read the Excel sheet. The name of Excel sheet is "NameOfExcelSheet". Wan to read the celles in the range A1 and D20.

            OleDbDataAdapter adapter = new OleDbDataAdapter();
            adapter.SelectCommand = command;
            adapter.Fill(table);  // EXCEPTION OCCURS IN THIS LINE. 

リンクhttp://www.microsoft.com/downloads/en/confirmation.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=enで入手可能なexeをインストールしました

しかし、それでもコードの実行中に同じ例外メッセージが表示されます。私が得ている例外は、「'Microsoft.ACE.OLEDB.12.0'プロバイダーがローカルマシンに登録されていません」です。

PLzはこれを手伝ってくれます。

前もって感謝します。

4

2 に答える 2

3

おそらく 64 ビットの Windows を使用していて、32 ビットのドライバーがインストールされています。32 ビット コンパイルに切り替えるか、64 ビット ドライバーをソースします。

于 2011-05-23T11:53:02.577 に答える
1

これを試してください(x86(32ビット)マシンにいることを確認してください):

このダウンロードでは、2007 Microsoft Office System ファイルと Microsoft Office 以外のアプリケーションとの間のデータ転送を容易にするために使用できる一連のコンポーネントがインストールされます。

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en

于 2011-05-23T12:36:01.303 に答える