1

わかりました、これは比較的単純な問題だと思います。そのため、3 日間検索しても解決策が見つからないことに非常に驚いています。

私がやろうとしているのは、複数のサブドキュメントから 1 つの大規模な docx ドキュメントを作成することです。これらのサブドキュメントにはすべて、それぞれのテンプレート ドキュメントのコンテンツ コントロールにデータが入力されています。現在、サブドキュメントが正しく作成されており、すべてのデータが適切に入力されています。次に、完成したサブドキュメントはそれぞれ、「マスター」テンプレート ドキュメントの特定のコンテンツ コントロールに入力されます。マスター ドキュメントはサブドキュメントによって正しく設定されていますが、サブドキュメントのコンテンツ コントロールに以前あったデータは失われています。

コンテンツ コントロールにバインドされたカスタム XML 部分にデータが追加されたドキュメントを、そのバインドされたデータを失わずに別のドキュメントにマージするにはどうすればよいですか?

OpenXML 2 と C# を使用しています。

注: これは altChunk メソッドを使用していますが、DocumentBuilder も試しましたが、同じ結果が得られました。

4

2 に答える 2

0

原則として、カスタム xml パーツ (およびその itemProps 関連パーツ) を大規模な docx ドキュメントにコピーするだけで済みます。

あなたの投稿から、altChunk と DocumentBuilder はこれを行わないように思えますが、後者のソース コードは利用可能です...

于 2012-07-03T22:21:25.587 に答える
0

ドキュメントをマージしている間、CustomXml パーツ データが最終ドキュメントのデータバインド コントロールに反映されていないと思います。私は同様の問題に直面し、私のアプローチは

  1. Merge の前にデータバインドされたコントロールを見つける
  2. CustomXml パーツからこれらのコントロールにデータを割り当てます
  3. AltChunk メソッドを使用して Merge

これは、OpenXmlHelper クラスの AssignContentFromCustomXmlPartForDataboundControl メソッドで見つけることができます。コードはWord Document Generatorからダウンロードできます。

于 2012-06-28T18:52:24.763 に答える