.NET:.NETでOfficeを自動化する場合、顧客はOfficeをインストールする必要がありますか?

StackOverflow https://stackoverflow.com/questions/403118

  •  03-07-2019
  •  | 
  •  

質問

プログラムを作成する場合、1つの小さな領域でExcelオートメーションを使用します:

Excelが必要な場合、アプリケーションは失敗します

またはアプリケーションの起動に失敗しますか


更新

同じ質問をしてみましょう。ただし、もっと引き出した方法で:

アプリケーションが使用可能になります

  •   

    Excelを必要とする機能を使用したことがないユーザーの99.9%

  • Excelがインストールされていないため、ユーザーの0%。

別の方法で同じ質問をさせてください:

COM相互運用DLLを参照するアプリケーションの初期化に失敗しますか?


別の方法で同じ質問をさせてください:

Excelを使用しないが、COM相互運用DLLを参照するアプリケーションは起動に失敗しますか?


別の方法で同じ質問をさせてください:

Excelがインストールされていない場合、Excelを使用しないアプリケーションは、そのアプリケーションがOffice Primary Interop dllに依存している場合に使用できますか?


別の方法で同じ質問をさせてください:

アプリケーションがExcelを使用しない場合、ユーザーはExcelをインストールする必要がありますか?

役に立ちましたか?

解決

コードは、自動化ライブラリへの呼び出しを試行するまで適切に実行され、その時点で例外を生成します。

他のヒント

Excelオートメーションを使用するアプリがあり、ロード時ではなく実行時に失敗すると断言できます。実際、インストールされているかどうかを確認し、「Excelでデータを表示」のみを表示します。ボタンが見つかった場合(ただし、PIAはすべてのインストールにデプロイされます)。

Officeを自動化する場合は、Officeが必要です!

とはいえ、質問をひねると答えが変わります:クライアントにExcelがなくてもExcelスプレッドシートを作成できますか?

これを行うための多くのサードパーティコントロールがあります。 MS SpreadML XML仕様( http:に直接書き込むことができます。 //msdn.microsoft.com/en-us/library/aa140066(office.10).aspx ;または、サードパーティのライブラリ( http://www.carlosag.net/Tools/ExcelXmlWriter/ )。

相互運用機能アセンブリは、クライアントシステムで使用可能なCOMコンポーネントなしでロードできるため、実行時に失敗すると思います。

更新:ランタイムは、必要なときに意味する必要があります!

Win32でCOMを使用すると、必要なときに失敗します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top