.NETでMicrosoft.Office.Interop.Excelを使用するには、どの参照が必要ですか?


101

C#を使用してExcelファイルを操作/自動化することに興味があります。

Webを閲覧した後、VSTOを見つけましたが、Visual Studio Express Editionではそれを使用できないため、使用できません。

ほんの数分前に、この名前空間をコードで使用しているこのサイトの質問に気付きました。

Microsoft.Office.Interop.Excel

それで、私が使用する必要があるのは必要な参照を追加することだけなのか、そうであればどの参照を追加するのかと思いますか?

更新

「Primary Interop Assemblies」を承認済みの回答としてインストールしましたが、何らかの理由で「.NET」の下の「参照の追加」ダイアログにまだ表示されていませんが、GACには存在しています。

そのため、「参照」を使用して参照を追加し、Microsoft.Office.Interop.Excel.dllGACフォルダーに配置しました。

しかし、GACからの参照の追加に関してこのサイトで同様の質問を探していると、これは推奨されないようです。

回答:


101

アップデート(user2347528に感謝)

これらのアセンブリはNuGetパッケージとして入手できます。これは、私の元の回答よりもはるかに簡単です。

プロジェクトの[ 参照 ]を右クリックして[NuGetパッケージの管理...]を選択、以下にリストされているパッケージの1つを検索してインストールするか、パッケージマネージャーコンソールを使用してインストールできます。

PM> Install-Package Microsoft.Office.Interop.Excel

これらは、「プライマリ相互運用機能アセンブリ」として利用できます。これは、Officeと共にインストールするか、ダウンロードして個別にインストールできます。方法:Officeプライマリ相互運用機能アセンブリをインストールします

それらがインストールされたら、.NETの[参照の追加]ダイアログのプロジェクトでそれらを参照できます。リストされているMicrosoft.Office.Interopアセンブリが表示されない場合、それらはまだインストールされていません。セットアップからインストールするか、個別にダウンロードしてインストールします(ダウンロードについては、上のリンクを参照してください)。


Microsoft Officeという名前の[Com]タブに多数のコンポーネントが見つかりました。
user850010

1
これらは、Visual Studioが.NET相互運用機能アセンブリを生成できるCOMサービスです。これらを使用することはお勧めしません。MicrosoftからリリースされたPIAアセンブリを使用する必要があります。これらは、[参照の追加]ダイアログの[.NET]タブに表示されます。それらが表示されない場合は、OfficeセットアップからPIAをインストールするか、回答でリンクしたように個別にダウンロードする必要があります。
moribvndvs

2
私は、追加参照ダイアログで任意の.NET]タブが表示されない@HackedByChinese

1
Visual Studio 2013では、これらの参照は[参照の追加]ウィンドウの左側のメニューの[アセンブリ]-> [拡張機能]にありました。
ベンジャミンレイ

1
Microsoft.Office.Interop.Excel.dllを使用するC#プログラムをWindows 2012サーバーにインストールしようとしています。プログラムはWindows 7 PCで正常に動作しますが、PIAをサーバーにインストールした後でも、System.Runtime.Interop.COMコンポーネントが見つからないというエラーメッセージが表示されます。Excel.Application()オブジェクトをインスタンス化しようとすると、プログラムが壊れます。他に見逃しているものはありますか?
メラニー

50

自分でこの問題を抱えていて、受け入れられた答えは私を助けませんでしたが、私はそれを次のように解決しました:

Add reference > Browse > C: > Windows > assembly > GAC > Microsoft.Office.Interop.Excel > 12.0.0.0_etc > Microsoft.Office.Interop.Excel.dll


2
私はどこでもこの解決策を探していました。
Karim O.

3
先端をありがとう。マイクロソフト自身がこれを確実に機能させることができないのは皮肉なことに皮肉なことです-2014年、私たちはまだ.dllを直接参照しています...
Mike Honey

12
Add Reference-> COM-> Microsoft Excel 12.0 Object Libraryも同じです。
プリモ2015年

サーバーで動作していますか?サーバーにオフィスをインストールせずに?
Naveen Katakam

わかりました。何か考えはありますか?Officeをインストールせずに使用できます。紺碧を使用しています。
Naveen Katakam

24

回答は問題を解決するのに役立ちませんでした。Microsoftのmsiインストーラーを使用してアセンブリをインストールしましたが、アセンブリを見つける(および参照する)ことができませんでした。私にとって、Excelアセンブリは以下にありますC:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll


フォルダーGAC、GAC_32、およびGAC_64を試した後、それが最後のフォルダーGAC_MSILには決してないだろうと思いました。しかしそうだった。コメントありがとうございます。私のためにうまくいきました!
Marty_in_a_Box 2016

最も単純で最良の答え。ありがとう、相棒。
Wessam El Mahdy 2017年

8

の参照を追加するだけですMicrosoft.Office.Interop.Excel

MicroSoft Excel関連のクラスが含まれているため、参照を追加する必要はありません。


1
それが私が最初に試みたものです。ただし、「オフィス」部分は見つかりません。
user850010

実際には@ user850010と同じ問題がありましたが、最終的に私が右クリックして私のソリューションの間違ったプロジェクトの参照フォルダーを追加していることに気付きました。
ユーザー

4

あなたがしようとしているのは、アプリケーションに参照を追加Microsoft.Office.Interop.Excelせずにusingステートメントで追加することです。その場合、それは見つかりません。usingステートメントで呼び出す前に、urアプリケーションへの参照を追加する必要があります。右クリックしReferencesて、Excel Interop参照を追加します。


4

参照の追加>参照> C:>ウィンドウ>アセンブリ> GAC> Microsoft.Office.Interop.Excel> 12.0.0.0_wasd ..> Microsoft.Office.Interop.Excel.dll



3

Microsoft Officeがインストールされている場合は、Interop.Excelへの参照を追加できます。

たとえば、これを入力しているPCにはMSVS 2010 C#ExpressとOffice 2010があります。Microsoft.Office.Interop.Excel11.0.0.0への参照を追加できます。

「それが役に立てば幸い


3

そのcomコンポーネント内の名前:「Microsoft Office 14 Object Library」


1
VS2010:「Microsoft Office 14 Object Library」へのCOM参照を追加すると、「Microsoft.Office.Core」への参照のみが追加されます。Better:COMリファレンス「Microsoft Excel 14.0 Object Library」を使用してください。インストールされているExcel実行可能ファイルを直接指しますが、「Microsoft.Office.Core」と「Microsoft.Office.Interop.Excel」の両方への参照として表示されます。Excelがインストールされているマシンでのみ実行および展開する必要がある場合に役立ちます。
JS

3

Office 2007以降の最適なオプションは、Open XML SDKを使用することです。Word.Interopを使用しましたが、停止する場合があり、Microsoftがサーバーサイドのドキュメントフォーマットとして使用することはお勧めしません。そのため、Open XML SDKを使用すると、DOCXおよびOpen XML形式でWordドキュメントを非常に簡単に作成できます。これにより、スケーラビリティ、信頼性(ファイルが破損している場合は再構築することができます)、および別の非常に細かい特性でうまくいくことができます。


2

これは非常に堅実な解決策です。Debug/ Releaseフォルダーにexcell.dllが必要です。鉱山は77,824バイトです。ファイルとしてダウンロードしました。これは、一部の人々がデバッグをコンパイルしたがリリースしていない、またはその逆の理由も説明しています。

トレント


2

私は同じ問題を抱えていましたが、これらの答えのどれも私を助けませんでした。私はPCのMosteyが指摘した場所にDLLを見つけました:(C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll)が、これは私がビルドしようとしているプロジェクトで参照されていたものではありません。

Visual Studio 2012のプロジェクトでの参照はを指していC:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\ます。この場所は私にとっては空でしたが、他の人にとってはうまくいきました。何度か試してみましたが、最終的には動作しているインストーラーを追跡しました。これにより、他の人が同じ手間を省けることを願っています!

-> VS2012用のOfficeツールバンドルインストーラー <-

これは、Officeのドキュメントとダウンロードページにあります。[ ツールのダウンロード]までスクロールします。現在、VS2013用のものもあります。


1

1.ダウンロードしてインストール:Microsoft Office Developer Tools

2.からの参照を追加:

C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ Visual Studio Tools for Office \ PIA \ Office15


1

同じ問題があり、VS2012をVS2015にアップグレードすると、Microsoft.Office.Interopが[参照の追加]オプションに表示されませんでした。基本的にインストールを修復し([コントロールパネル]> [プログラムと機能]> [VS 2012]> [右クリック] [変更]> [修復])、Microsoft Officeコンポーネントを追加しました。その後、同じソリューションが機能し始めました。


0

プロジェクトが32ビットであることを確認してください。

この問題が発生しました。参照->アセンブリ->検索 "Office"で利用可能なすべてのOffice Interopアセンブリを「32ビット優先して再構築」にチェックを入れた直後です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.