17

目的のレイアウトを含む "テンプレート" docx ドキュメントがあり、C# を使用してコンテンツを挿入したいのですが、段落や表など、ドキュメントの特定のセクションを一意にアドレス指定する方法が見つかりません。ドキュメント内の要素を一意に識別する最良の方法は何ですか? ありがとう、マット・シャープ。

4

4 に答える 4

11

テンプレートはどのように構築されていますか? *.docx の一部として読み込まれた、基になる XML スキーマを使用していますか? または、Developer リボンからコンテンツ コントロールを使用していますか? その場合、各コントロールは特定のタグ名で一意に識別されますか? これらのアプローチはどちらも、表や段落の場所を制御できるため、ドキュメントの特定のセクションを簡単に識別できるようになります。

また、Open XML SDK 2.0 (.NET 3.5 を使用) の使用を検討することもできます。これには、任意の Open XML ドキュメントを開いて検査できる便利な Document Reflector ツールが含まれており、クリックした要素のコードを生成する方法を示します。

それとは別に、コンテンツ コントロールの詳細については、次の投稿を確認してください。

于 2009-09-03T05:44:22.067 に答える
3

ブックマークまたはコンテンツコントロール(リボンの[開発者]タブ、ここのコード例)のいずれかを探していると思います
。同じ目的でExcelの名前付き範囲を使用しました。

于 2009-09-02T15:35:50.223 に答える
3

ドキュメント変数/フィールドを使用できますか? Insert->Quick Parts->Fields->Doc Variable に移動し、変数の名前を入力します。

例: http://www.codeproject.com/KB/office/Fill_Mergefields.aspx

また、「##insert_first_name##」のようなプレースホルダー テキスト値を使用して、それらの変数を検索および置換することもできます。

例: http://geekswithblogs.net/DanBedassa/archive/2009/01/16/dynamically-generating-word-2007-.docx-documents-using-.net.aspx

于 2009-09-02T00:03:47.303 に答える
1

これを行うには、いくつかのオプションがあります。

タグを値に置き換える単純なオープンソース ライブラリを作成しました。

たとえば、Hi {name}withdata={name:"John"}は に置き換えられHi Johnます。

ここにあります: https://github.com/edi9999/docxtemplater

デモ: http://javascript-ninja.fr/docxgenjs/examples/demo.html

于 2014-09-22T13:44:03.113 に答える