2

xlsxを使用して C# でファイルを読み取るコンソール アプリケーションを作成しましたOleDbConnection。次のエラーがスローされます

Microsoft.ACE.OLEDB.12.0' プロバイダーがローカル コンピューターに登録されていません。

以下は私が書いたコードです

string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Suganya\ColumnReport.xlsx;Extended Properties=Excel 12.0;";
OleDbConnection objConn = new OleDbConnection();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
objConn = new OleDbConnection(connString);

string Query = "SELECT * FROM [Sheet1$]";
OleDbCommand objCmd = new OleDbCommand(Query, objConn);

DataTable Table = new DataTable();
dataAdapter.SelectCommand = objCmd;
dataAdapter.Fill(Table);

問題を解決するために、私はすでに次のことを実行しました。

  1. AccessDatabaseEngine.exe(32ビット)をインストールしましたACEOLEDB.dllが、次のパスに存在することがわかりましたC:\Program Files (x86)\Common Files\microsoft shared\OFFICE14

  2. ACEOLEDB.dllアプリでを参照してみました。しかし、それは私に次のエラーを与えました

    「ACEOLEDB.DLL」への参照を追加できませんでした。ファイルにアクセスできること、および有効なアセンブリまたは COM コンポーネントであることを確認してください

  3. コンソール アプリケーションの構成プラットフォームは 32 ビットです

環境の詳細

  1. Windows Server 2008 (64 ビット)
  2. Visual Studio 2010 (32 ビット)
  3. MSオフィスがインストールされていません

問題を解決するために次のリンクを確認しました

1. http://www.codeproject.com/Questions/486549/Theplus-27Microsoft-ACE-Oledb-12-0-27plusproviderp 2. http://www.codeproject.com/Questions/337953/The-Microsoft-ACE -OLEDB-12-0-provider-is-not-regis

どんな助けでも大歓迎です。

4

1 に答える 1

0

Microsoft Office をインストールする必要があります。Office のインストール プロセスは、必要なアセンブリ ('ACEOLEDB.DLL') を GAC にコピーして登録します。または、不足しているアセンブリを bin (アプリケーション) ディレクトリに追加するか、自分で登録することもできます。

于 2013-09-03T13:51:16.013 に答える