2009-12-21 1 views
2

J'ai créé un document Word avec Word 2003 et inséré un champ MergeField via l'interface graphique. Je l'ai enregistré en tant que .docx en utilisant Pack de compatibilité Microsoft Office pour les formats de fichier Word, Excel et PowerPoint 2007. Certains champs Mergefield sont stockés en tant que SimpleField, tandis que d'autres sont stockés en tant que FieldCode (avec start-FieldChar et end-FieldChar). Certains googling m'a amené à cette blog. Comme vous pouvez le voir le gars est confronté au même problème; mais n'a pas encore trouvé de solution.Mailmerge Champ pas toujours enregistré de la même manière dans Word .docx

J'utilise l'exemple de code suivant sur Codeplex [Fill Mergefields] pour remplacer les champs MergeField par les valeurs réelles de différentes sources de données.

Toute aide est la bienvenue.

Répondre

0

Si la valeur d'un champ est simplement un texte simple avec un formatage cohérent, il peut être stocké comme un noeud fldSimple. Toutefois, si la valeur du champ a un formatage différent, il doit être enregistré en tant que champ complexe (fldChar Start, Optional Separate et End) afin que chaque exécution dans la valeur du champ puisse avoir son formatage différent dans les propriétés d'exécution <w:rPr>. Je pense que cela arrive aussi si le mot utilise les attributs rsid pour suivre les changements. Les commandes fldChar Start/Separate/End sont également nécessaires si les champs sont imbriqués, par exemple plusieurs champs IF, afin de pouvoir stocker un nombre arbitraire de <w:r>, <w:p>, <w:tbl> comme valeur du champ.

Et parfois, il les stocke comme ça pour apparemment pas une bonne raison. (Comme ce blog l'a noté).

Questions connexes