Webサーバー上でWord文書を動的に生成することを計画しています。C#でこれを行う良い方法はありますか?これを行うためにWordをスクリプト化できることは知っていますが、別のオプションを選択したいと思います。
8 に答える
私は過去に、生成された Word ドキュメントを本当に欲しがっていた会社で働いていましたが、最終的には ".doc" 拡張子を持つ RTF ドキュメントに完全に満足していました。Word はそれらを問題なく認識して開くことができます。
RTF ドキュメントはiText.net (無料の .net ライブラリ) で生成されました。API は非常に使いやすく、パフォーマンスが非常に高く、マシン上で単語を必要としません。また、PDF、HTML、およびごくわずかな労力で将来のテキスト ドキュメント。4 年経った今でも、私が作成したソリューションは有効です。これは、iText.net に有利な証拠です。
iTextの公式ページでは、現時点ではiText Sharpが .Net の最適な選択肢であると示唆されているようです。
rtfファイルを生成することをお勧めします。この単語は開く方法を知っています。
Office 2007ドキュメントを生成する場合は、Open XMLFileFormatsを確認してください。これらは単純なzip形式のXMLファイルです。次のリンクを確認してください。
編集:このプロジェクトを確認してください。良い出発点として役立ちます。
非常にシンプルでカスタマイズ可能なようです。次のコードスニペットをご覧ください。
Paragraph p = new Paragraph();
p.Runs.Add(new Run("Text can have multiple format styles, they can be "));
p.Runs.Add(new Run("bold and italic",
TextFormats.Format.Bold | TextFormats.Format.Italic));
doc.Paragraphs.Add(p);
Word は、拡張子が .doc の HTML を問題なく開きます。内部スタイル シートを含める場合は、完全にフォーマットすることができます。このテーマに関する以前の投稿がありました:
古い .DOC ファイル (Word 2007 より前) を作成することは、Word 自体なしではほぼ不可能です。形式が複雑すぎます。Microsoft はフォーマットの説明を公開しましたが、成長したプログラマーを泣かせるには十分です。それにも(歴史的な)理由がありますが、それで状況が改善されるわけではありません。
新しい .DOCX の方が簡単ですが、まだかなり手間がかかります。ただし、対象とする Word のバージョンによっては、他のオプションもいくつかあります。
1 つには、古典的な .RTF があります。この形式はまだかなり複雑ですが、十分に文書化されており、多くのアプリケーションやプラットフォームで強力にサポートされています。また、テンプレートファイルに文字列置換を使用して、作業を簡単にすることもできます (非バイナリです)。
次に、「古い」Word XML ファイルがあります。Word XP以降は機能していたと思います。.DOCX の前身のようなものです。私はそれらを使用しましたが、悪くはありません。そして、ドキュメントはかなりOKです。
最後に、私が選択する簡単な方法は、単純な HTML を作成することです。Word は、バージョン 2000 から HTML ファイルを問題なく読み込むことができます。最も簡単な方法は、HTML ファイルの拡張子を .DOC に変更するだけです。Word での見栄えを良くするために、いくつかの単語固有のタグとコメントを追加することもできます。Word の [名前を付けて保存...HTML] オプションを使用して、それらが何であるかを確認してください。
それが仕事をすることについてのサードパーティのライブラリがあります。
簡単なグーグルをすることは、例えば、これを思いついた。
私は何も試したことがないので、具体的なアドバイスはできません。恐れ入ります。
乗り方を教えてください...
Office 2007 では、 Microsoft はMicrosoft Open Office XML Format (.docx) と呼ばれる新しいファイル形式を導入しました。この形式は、古いバージョンの Microsoft Word と互換性がありません。これは XML であるため、Word がインストールされていなくても、作成または読み取ることができます。
カスタム テンプレートに基づいてドキュメントを生成するコンポーネントを次に示します。ドキュメントは sharepoint リストから生成されます ... そのため、データはその場でリスト項目からドキュメントに取り込まれます: http://store.sharemuch.com/products/generate-word-documents-from-sharepoint-list
それが役立つことを願って、
Yaroslav Pentsarskyy ブログ: www.sharemuch.com