2012-04-02 21 views

答えて

5

私は過去に様々なやり方をしてきました。これは、ユーザーがMicrosoft Wordの外からまたはMicrosoft Wordの中からアクションを開始するかどうかによって異なります。

Microsoft Wordの INSIDE から、次の方法のいずれかを使用できます。

  1. オープンプレースホルダを含むテンプレートをコピー&ペーストを使用してデータソースを使用してそれらを反復するために、VBAまたはVSTOを使用します。テーブルはここでも犯罪であることに注意してください。このアプローチは、以下のアプローチ1に似ています。比較的遅い(コピー&貼り付け)という短所があり、Microsoft Wordの自動修正機能は、必要最小限のときに起動するのが好きです。
  2. テンプレートをプレースホルダで開き、VBAまたはVSTOを使用してXML表現を解析して置き換えます。それは速いが、書くのは難しい。特に、XML表現には、プレースホルダ内にXMLフラグメントが含まれる可能性があります( '&amp;lt;&amp;lt;PUT_<xxx/>IT_HERE&amp;gt;&amp;gt;'など)。また、有効なXML文書を保持し、バランスが取れていることを確認する必要があります。 から

OUTSIDEのMicrosoft Word(たとえば、ウェブインタフェースなど)次のいずれかの方法を使用することができます。

  1. ストアWordの独自の構造よりも処理することがはるかに簡単であるどこかにRTFを使用してテンプレート( )。 '&lt;&lt;PLACEHOLDER-FOR-NAME&gt;&gt;'などの簡単に認識できるテキストを置き換えたい場所に置きます。ユーザーがWord文書を要求すると、RTFをフェッチし、データをフェッチし、プレースホルダー、サーバーRTFをユーザーに置き換えます。 RTFにはいくつかの制限がありますが、いくつかの利点があります。利点は次のとおりです。新しいテンプレートの作成が簡単で、MicrosoftワードパッドなどのOfficeパッケージでも機能します。欠点は、テーブルが処理するのが本当に面倒であり、すべてのMicrosoft Wordの構成が可能ではないということです。テーブルの行を繰り返すことは、あまり推奨されません。ボリュームが大きいと問題になることがあります。
  2. docx、doc、またはRTFドキュメントを出力するレポートパッケージを使用します。レポートを書きます。一般的には大量に適しています。レポートパッケージは通常、明示的または暗黙的なページ区切りが挿入されるフローテキストの代わりにページに基づいて動作するため、エンドユーザーに大量の追加テキストを入力させる場合はあまり適しません。しかし、エンドユーザーがさらに1〜2つの文章を入力するだけでよい場合は、それで十分です。
  3. Fat-client。 SQLデータをどこかに置く。オープンワード。 INSIDE Microsoft Wordからデータを読んで、さらに詳しいテクニックを見てください。あなたは、SQL Server(または任意の他のデータベースやデータプラットフォーム)からWord文書を埋めるために必要がある場合は

は、私は(私はその製品に関わってきたことに注意してください)Invantive Composition for filling Word documents from the databaseの無料版をお勧めすることができます。テンプレートを開き、Word内からテンプレートをマージしますが、開発者以外の方を対象にしています。テンプレートとデータブロック(ネストされている可能性もある)を指定して公開するだけです。開発者はプラグインでC#を追加することしかできません。私は、それがより容易に拡大できるので、あなたがたくさんのテンプレート(50以上)を持っているとき、それは良い製品だと思います。

-4

MS-ExcelはWordよりもXMLにバインドされているので、試してみることもできます。 ExcelでWord形式の出力を生成するのも簡単です。

+3

便利かもしれません。 – jorrebor

2

あなたのドキュメントにSQLデータベースからデータをフェッチするためにMicrosoft Queryを使用することができ、このビデオでは、これがないほとんどの質問に答える https://vimeo.com/83983247

関連する問題