web-dev-qa-db-ja.com

C#-Excelの相互運用性

C#4.0(VS 2010 Express Edition)からExcelSheetを呼び出したい。

私が宣言するとき、

Microsoft.Office.Interop.Excel.ApplicationClass Excel =
    new Microsoft.Office.Interop.Excel.ApplicationClass();

Excel.Visible = true;

次のようにエラーを受け取ります

相互運用タイプ 'Microsoft.Office.Interop.Excel.ApplicationClass'を埋め込むことはできません。代わりに適切なインターフェイスを使用してください。

魂とは何ですか?

24
Naues

ここ はそれを扱ったブログ投稿です。変更する必要があるようです

Microsoft.Office.Interop.Excel.ApplicationClass();

Microsoft.Office.Interop.Excel.Application();
35
Dave Swersky

私にとっての答えは、EmbedInteropタイプをfalseとしてマークすることでした。 this の質問を参照してください。

5
Matan Melamed

解決済み:

Excel.ApplicationClassExcel.Applicationインターフェイスから派生し、Excel.Applicationインターフェイスを使用してExcelをインスタンス化することもできます。このコードを以下のように書き直すと、まったく同じ結果が得られます。

Excel.Application xlapp = new Excel.Application();
3
santosh Kundkar

変数をMicrosoft.Office.Interop.Excel.Applicationとして宣言する必要がありますが、Microsoft.Office.Interop.Excel.ApplicationClassとしてインスタンス化します。

1
iandisme
Excel.Application = new Excel.ApplicationClass();

Excel.Applicationではなく先頭のExcel.ApplicationClassに注意してください。

また、これは ApplicationClassのMSDNページ から直接出ていることにも注意してください。

1
JMD

MS Office 2016の場合、次のドラマなしを使用する必要があります

Excel.Application oExcel = new Excel.Application();
0
afr0