.NET:.NETでOfficeを自動化する場合、顧客はOfficeをインストールする必要がありますか?
質問
プログラムを作成する場合、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を使用すると、必要なときに失敗します。