2012-01-25 3 views
0

こんにちは、私はxlsxファイルを作成するためのC#コードを使用しています。私はMicrosoft.Office.Interop.Excel用の私のbinへの参照を追加しましたバージョン12.0.0.0asp.netコードからxlsxファイルを作成する

それは私のローカルマシンで動作します。しかし、サーバーにアップロードすると、xlsxファイルを作成しているページにエラーがスローされます "CLSID {00024500-0000-0000-C000-000000000046}のコンポーネントのCOMクラスファクトリを取得するのが次のエラーのために失敗しました:登録されていません80040154クラス(HRESULTからの例外:0x80040154(REGDB_E_CLASSNOTREG))。 」 は、誰もがplzはエクセルがサーバーにインストールされていないので、あなたがエラーを取得している

+0

:OfficeWriterはその一例です。この依存関係を取り除くためにできることの1つは、オプションの場合、xlsxではなくCSVを作成することです。これはオープンフォーマットであり、Excelで開いて操作することができます。 –

+1

一般に、サーバー上でExcelオートメーションを使用すべきではありません。あなたは代わりに使うことができるたくさんのライブラリ[この質問では](http://stackoverflow.com/questions/151005/create-excel-xls-and-xlsx-file-from-c-sharp)があります。 – Rup

答えて

3

を助けることができます。

1

ASP.NETでOfficeを自動化しないでください。サーバー上での無数のパフォーマンスと規模の問題につながる可能性があります。 Office自体は、非GUIアプリケーションでの無人実行ではなく、インタラクティブデスクトップの使用のために設計されています。それは言われていると

http://support.microsoft.com/kb/257757

は、ASP.NETでExcelの操作のために特別に設計されたサードパーティのライブラリがあります。ここで問題にMSからの正式な参照です。ベン・ロビンソンが示すように、このエラーはExcelは、サーバーにインストールされていないことを示すことになる

http://www.officewriter.com

+0

+1:私はこれを十分に強調することはできません – NotMe

関連する問題