2016-07-08 13 views
-1

新しいC#windowsフォームアプリケーションを作成しました。 COMリファレンス "Microsoft Excel 15.0 Object Library"をプロジェクトに追加しました。このプロジェクトは、データセットにExcelデータをインポートするためのプロジェクトです。私はそれをやった。私は自分のコンピュータでうまく動作します。別のコンピュータでexeファイルを実行すると、以下のようなエラーが表示されます。c#別のコンピュータでWindowsアプリケーションを実行できませんでした

ERROR:

Unable to cast COM object of type Microsoft.Office.Interop.Excel.ApplicationClass’ to interface type ‘Microsoft.Office.Interop.Excel._Application’” This operation failed because the QueryInterface call on the COM component for the interface with IID '{{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Error loading type library/DLL (Exception from HRESULT:0x80029C4A(TYPE_E_CANTLOADLIBRARY)).

+0

(再)そのマシンにOfficeをインストールして、真のローカルコピー=を設定してみてください。 –

+0

interopを使用する場合は、ターゲットマシンに同じMS Officeバージョンをインストールする必要があります。 – Jaxedin

+0

ありがとう@Dirk、@ Jaxedinそんなに、それは私のエラーを解決する、私は多くのシステムに私のアプリケーションを実行する場合は、そのすべてのシステムに同じオフィスのバージョンをインストールするより良い方法はありません。 –

答えて

0

COMコンポーネントは、私の専門ではない、と私はあまりにも頻繁に利用していません。しかし、私が以前経験したことを教えてくれるでしょう。私は約6ヶ月前にこれを経験しており、私の職場では理想的ではありませんでした。

COMコンポーネントを使用するには、ターゲットコンピュータ(この場合はExcel/Office)に依存関係をインストールする必要があります。対象のコンピュータにExcelがインストールされているかどうか確認しましたか?

そうでない場合は、OLEDB接続を使用してExcelファイルを読み取ることができます。私はこれが具体的にどのように行われたのか覚えていない。

多分これがOLEDB使用してExcelファイルを読むために何らかの方法で助けることができる:あなたのproyectの参考文献にhttp://www.codeproject.com/Tips/705470/Read-and-Write-Excel-Documents-Using-OLEDB

+0

応答をありがとうが、私はcom参照(Microsoft Excel 15.0オブジェクトライブラリ)を使用してExcelにアクセスする答えが必要です。あなたが共有したリンクは非常に役に立ちます –

+0

@Jaxedinは言ったように、あなたのソフトウェアが動かす各コンピュータで利用可能なOfficeライブラリと全く同じものを持っているはずです。それが保証できない場合は、NetOffice http://Netoffice.codeplex.com/を使用することをお勧めします。これは、インストールされているすべてのバージョンでサポートされているリソースのみを使用する限り、MS Officeアプリケーションのスマートなラッパーです。 。 – VBobCat

+0

ありがとう@VBobCat、U rの提案は素晴らしいです、私はNetofficeラッパーが私のエラーを解決することを願っています。私はこれを試してみるつもりです。 –

関連する問題