2009-08-07 4 views
3

Microsoft Excelにデータをインポートするアプリケーションを開発しました。バージョン独立オフィスを使用した.NET Office interop

VS2005 + .NET 2.0を使用し、Microsoft Office 2007が自分のマシン(Office 12)にインストールされています。

私は私のマシンでそれを実行した場合にコンパイルされたアプリケーションが正常に動作しますが、私は下のバージョン(Office 2000の)を使用したものを言う他のマシンにアプリケーションをデプロイするとき、私はエラーを取得しています:

は、ファイルをロードできませんでした。またはアセンブリMicrosoft.Office.Interop.Excel、バージョン12.0.0.0

マシンにインストールされているOffice(Excel)に関係なく、アプリケーションを正しく実行するにはどうすればよいですか?

ありがとうございました。

アップデート: Microsoft.Office.Interop.Excel.dll(バージョン12.0.0.0)とOffice.dll(バージョン12.0.0.0)という2つのDLLをmy binフォルダに配置しました。この参照のプロパティをCopy Local = Trueに設定し、アプリケーションをコンパイルすると、DLLはdebug/releaseフォルダにコピーされます。私は、アプリケーションを実行しようとすると、今

は、私はすでにエラーの外に出た:

が、別のエラー「ファイルまたはアセンブリMicrosoft.Office.Interop.Excel、バージョン12.0.0.0をロードできませんでした」次のようになりました: System.AccessViolationException:保護されたメモリを読み書きしようとしました。これはしばしば、他のメモリが壊れていることを示します。オブジェクトのファイル形式、オブジェクトのパスワード、オブジェクトのWriteResPassword、オブジェクトReadOnlyRecommended、オブジェクトCreateBackup、XlSaveAsAccessMode AccessMode、Object ConflictResolution、Object AddToMru、Object TextCodepage、Object TextVisualLayout、Object Local) (Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs)

Officeのバージョンに関係なく、データテーブルのデータをExcelにエクスポートできるアプリケーションを実際に作成するにはどうすればよいですか?

ありがとうございました。

答えて

2

ルックを所有 - ( - 2007年と作品testeod MS Officeの97)、それはOfficeのバージョンのラッパーが独立したのです。

+0

Office Wrapperを使用しようとしましたが、Office 2007でうまく動作します。Office 2000で同じことをテストしていません。 アプリケーションの作成プロセスがメモリ内にあるようです。 MSExcel.Application.CreateApplication.Quit()を呼び出したにもかかわらず、「Book1の変更を保存しますか?」というメッセージが表示されます。私はマシンをシャットダウン/ログオフしています。 これ以上のアドバイスは高く評価されます。ありがとう。 – Batuta

+0

プロパティ "Application.Interactive = false"を設定します。次に、すべてのユーザー入力を禁止する必要があります。 この物件情報をもっと見る:http://msdn.microsoft.com/en-us/library/bb177670.aspx – TcKs

0

これは、具体的にはそのアセンブリのバージョン12を探しているからです。

csprojで、Referencesフォルダにそのアセンブリへの参照を見つけます。その参照のプロパティに移動し、特定のバージョンをFalseにします。

+0

私は特定のバージョン= Falseを設定していますが、まだOfficeバージョンがインストールされていないマシンではアプリケーションを実行できません。 – Batuta

0

あなたが少ない問題を抱えているだろう - しかし、あなたはまだ問題があるかもしれない - あなたの代わりにエクセル2007のExcel 2003の反対

を構築する場合は、あなたが気にせずにアプリケーションを展開することができ、.NET用のExcel互換のライブラリですユーザーに特定のバージョンのExcelがあるかどうか(Excelのバージョンがなくても機能する)

サンプルはC#およびVBソースコードhereで、無料試用版hereをダウンロードできます。

免責事項:私はMS Office Wrapper for .NETでスプレッドシートギア社

1

以前は、Office用のリファレンス(つまり、システム用のものではない)がローカルコピー用に設定されていることを確認した場合、動作することが判明しました。

私は一般に、MicrosoftのWebサイトのどこかから入手できるOffice 2003 PIAでコンパイルし、出力はOffice 07で機能しています。出力が機能するかどうかわからないOffice 2000またはXP 。