2011-01-10 17 views
2

イントラネットでのみ使用されているC#で書かれた.net Webアプリケーションがあります。.netアプリケーションからWord文書を作成する

Word文書を作成し、テキストの一部を動的に変更し、Word文書を保存して電子メールの添付ファイルとして送信する必要があるページがあります。

Word Automationを使って試してみましたが、開発マシンで動作しましたが、他のユーザーが使用しようとするとサーバー上で動作しません。

だから...その場でWord文書を作成し、保存して電子メールの添付ファイルとして使用するにはどうすればよいですか?私は検索して、人々は 'open xmlを使う'と言っています...しかし、(私はそれをどうするか分からないという事実を除いて)これは私が作成してWord文書を保存することを可能にします。 Wordの古いコピー(Word 97のように遠くまで)。

私は「Sharepoint Server」という言葉を読んでいますが、これは.net Webアプリケーションでどのように/どのように適合するかわかりません。

誰でも正しい方向に私を指摘できますか?

+0

なぜあなたのサーバーでは動作しないのですか? –

+0

どのような種類のファイルを生成しますか? .doc、.docx、.rtf、... –

答えて

3

OpenXMLは今すぐに行く正しい方法です。実際にWord文書を作成するのは簡単ですが、チュートリアルがたくさんあります。

あなたの質問にSharepointを付け加えただけなので、Sharepointを使用しているかどうかはわかりません。もしそうなら、マイクロソフトから直接Generating Documents from SharePoint Using Open XML Content Controlsというサンプルコードもあります。

+1

リワインダーへ:無限のアクセス権の問題のため、オートメーションはサーバー上で動作しません。マイクロソフトでは、Officeがそのために設計されていないため、サーバー上でOffice Automationを試してはいけないと言う... http://support.microsoft.com/?id=257757 –

+0

OxA3へ: Wordと互換性があります。Word 97-2003に戻る –

+0

moontearに:XMLのルートを下ろさなければなりませんか?私はSharepointがサーバー上でオフィス文書を共有できると思った。だから私は、Word文書を開いて、その中のテキスト(ブックマーク)の一部を修正して、それを私が望む場所に保存できることを望んでいました。 –

1

開発マシンでコードは動作しましたが、サーバーでは動作しなかった可能性が最も高いのは、開発マシンにOffice/Wordプライマリ相互運用機能アセンブリがインストールされている可能性がありますが、ない。私は彼らがそうでないと仮定しています。

ユーザーは、Microsoft Office XP(2002)またはOffice 2003 上にある場合Microsoft Office Compatibility Packがインストールされている、そして、あなたの最良のオプションは、ユーザーがされる、オンザフライでの.docxファイルを生成するためにOpen XML SDKを使用することです互換性パックをインストールすることで開くことができます。ユーザーが文書を開いたら、通常の.doc形式で文書を保存することができます。

ユーザーベースがOffice 2000またはそれ以前のユーザーが含まれている場合はこれらのバージョンのOfficeには互換機能パックが存在しないとして、あなたは運が悪いです。

Officeアセンブリがインストールされていない状態でWebサーバーに.doc形式を生成することはできません。他の人も指摘しているように、これはMicrosoftによって強く推奨されません。

+0

添付ファイルとして送信する文書は、97に戻って互換性のあるWord文書でなければなりません。 –

+0

互換性とユーザーがインストールしたWordのバージョンには違いがあります。一般に、拡張子が.docのバージョン2003から作成されたWord文書は、Word 97と下位互換性がありますが、それ以降のバージョンの機能に依存する文書内のコンテンツは以前のバージョンでは使用できません。 Open XML SDKを使用して、Word XPまたはWord 2003を使用しているユーザーにOffice 2007互換パックを使用してドキュメントを開くことができる.docxドキュメントを生成し、必要に応じて古いドキュメントに保存することをお勧めします.doc形式。 – Jazza

0

他の人は、なぜワード自動化がおそらく機能しないのか、それはどうしてもいいえではないという理由でコメントしています。

OpenXMLは良いですが、より新しいファイル形式のみをサポートしています。

古い.docファイル形式(Word97など)をサポートしたい場合、あなたは別のコンポーネントを見てする必要があるとしていると、おそらく商業の1等(接続なし)としてAspose Words

+0

Sharepoint Server上のWord 97文書にアクセスできず、変更して保存できません。 .NETフォームからSharePoint Server上のドキュメントを開く方法を示すコードは見つかりません。 –

0

しないでくださいオフィスオートメーションをサービスから利用しています。 Office AutomationはOffice デスクトップアプリケーションを自動化するように設計されています。これは、UIの存在を前提としています。

また、シングルスレッド化を前提としています。サーバー(特に、あらゆる種類のWebサーバー)は複数のスレッドで動作し、Office Automationコードはそれをまったく処理しません。

さらに、Office Automationを呼び出すコードを使用するすべてのエンドユーザーに対して、有効なOfficeライセンスが必要です。

1

RTFを使用したことはありますか? RTFファイルはテキストだけなので、通常の.NetファイルI/Oを使用してファイルを読み込み、興味のあるビットを変更してから再度書き出すことができます。 RTFは、97以降のバージョンのWord(およびおそらく古いバージョンも)から読み取ることができます。 1つの欠点は、ドキュメントに複雑な変更を加える必要がある場合です。RTFをテキストとして処理するだけでは難しい場合があります。

+0

RTFは事実上レターヘッドを扱うでしょうか?ヘッダーやフッターなどのロゴやその他のグラフィックスブックマークを使用すると、特定のテキストを動的に置き換えることができます。 –

関連する問題