C#でEXCELを使おうとするとUnhandled exception. System.IO.FileNotFoundExceptionのエラーが発生

Nawa 40 評価のポイント
2024-07-19T00:58:33.25+00:00

下記環境にてC#でExcelを使用するとエラーが発生します。ご教示お願いいたします。

・環境

Windows11 Pro

Office365

.net SDK 8.0.303

VSCode

・エラー内容

Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'. 指定されたファイルが見つかりません。

File name: 'office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'

at Program.Main()

・ソースコード

using System;
using Microsoft.Office.Interop.Excel;

class Program
{
    static void Main()
    {
        // Create a new Excel application instance
        Application excelApp = new Application();
	}
}
C#
C#
C 言語ファミリをルーツとし、コンポーネント指向プログラミングのサポートを含む、オブジェクト指向およびタイプセーフのプログラミング言語。
27 件の質問
0 件のコメント コメントはありません
{count} 件の投票

承認済みの回答
  1. gekka 8,771 評価のポイント MVP
    2024-07-19T01:42:43.19+00:00

    プロジェクトファイルのCOM参照で「相互運用型の埋め込み」を有効に

    <Project Sdk="Microsoft.NET.Sdk">
    
        <ItemGroup>
            <COMReference Include="Microsoft.Office.Interop.Excel">
                <WrapperTool>tlbimp</WrapperTool>
                <VersionMinor>9</VersionMinor>
                <VersionMajor>1</VersionMajor>
                <Guid>00020813-0000-0000-c000-000000000046</Guid>
                <Lcid>0</Lcid>
                <Isolated>False</Isolated>
                <EmbedInteropTypes>True</EmbedInteropTypes> <!-- これ -->
                <Private>True</Private>
            </COMReference>
        </ItemGroup>
    
    1 人がこの回答が役に立ったと思いました。

2 件の追加の回答

並べ替え方法: 最も役に立つ
  1. SurferOnWww 2,581 評価のポイント
    2024-07-19T01:34:12.5333333+00:00

    Office はインストールされてますか?

    office.dll, Microsoft.Office.Interop.Excel.dll は GAC に存在しますか?

    参照設定はしましたか?

    enter image description here


  2. Raina Zhao - MSFT 2,695 評価のポイント Microsoft ベンダー
    2024-07-19T03:40:29.09+00:00

    Nawaさん、こんにちは。

    Microsoft Q&A フォーラムにご投稿くださいましてありがとうございます。

    提供された情報により、そのエラーはOfficeアセンブリの特定バージョンへの参照が不足していることに起因しているようです。

    Office 365と.NET SDK 8.0.303を使用しているのですが、エラーメッセージは「Office, Version=15.0.0.0」が見つからないことを示しています。Office 365の相互運用アセンブリがインストールされていることを確認してください。

    Microsoft.Office.Interop.Excel パッケージをNuGet パッケージ マネージャーからインストールできます。SurferOnWwwさんとgekkaさんから寄せられた回答をご確認ください。

    以下のサンプルをご参考まで。

    using System;
    using Microsoft.Office.Interop.Excel;
     
    class Program
    {
        static void Main()
        {
            //Create a new Excel application instance  
            Application excelApp = new Application();
     
            //Check if the Excel application instance was successfully created
            if (excelApp != null)
            {
                Console.WriteLine("Excel application created successfully.");
     
                //Set the Excel application to be visible
                excelApp.Visible = true;
     
                //Create a new workbook
                Workbook workbook = excelApp.Workbooks.Add();
     
                //Get the first worksheet
                Worksheet worksheet = (Worksheet)workbook. Sheets[1];
     
                //Write some data in the cell
                worksheet. Cells[1, 1] = "Hello, Excel!";
                worksheet. Cells[2, 1] = DateTime.Now.ToString();
     
                //Save the workbook
                string filePath = "C:TempExample.xlsx";
                workbook. SaveAs(filePath);
     
                //Close the workbook and quit the Excel application
                workbook. Close();
                excelApp.Quit();
     
               Console.WriteLine($"Workbook saved at {filePath}");
                 }
                else
                 {
                Console.WriteLine("Failed to create Excel application.");
            }
        }
    }
    
    
    
    

    どうぞよろしくお願いいたします。


    役に立った回答には「回答を受け入れる」と「いいね!」を押してください。さらに質問がある場合は、「コメント」を追加してください。注意:Q&Aからメール通知を受け取りたい場合には、ドキュメントの手順に基づき、メール通知を有効にしてください。


お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。