2009-02-09 10 views
3

Je génère par programme un document Office Open XML (format Word 2007) et souhaite que tous les champs soient mis à jour lorsque le document que je génère est ouvert pour la première fois dans Word.Création dynamique de documents Office Open XML: mise à jour de tous les champs ouverts

Lorsque j'ai fait des recherches il y a quelque temps, la seule façon d'y parvenir était d'exécuter VB Script lorsque le document s'ouvrait. Mais VB Script ne fonctionne pas par défaut, et pour que cela fonctionne, l'utilisateur doit autoriser les scripts, ce qui est plus compliqué que de demander à l'utilisateur de faire un "select-all, F9", ce qui va à l'encontre du but.

Une suggestion?

Alex

Répondre

2

Votre recherche indiquait déjà les bons résultats. L'utilisation de VBA ou de toute autre forme d'automatisation Word est la seule solution. Word et OpenXML ont une option pour mettre à jour automatiquement les champs à l'ouverture.

+0

@divo Bon à savoir. Merci de confirmer cela. – avernet

7

Il existe un moyen de le faire sans script VB.

Vous pouvez définir le champ comme étant sale et il sera mis à jour lorsque le document est ouvert.

<w:fldSimple w:instr="TOC" w:dirty="true" /> 

Si vous avez beaucoup de champs que vous pouvez mettre à jour les paramètres de votre document afin que tous les champs sont mis à jour lorsque le document est ouvert

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"> 
    <w:updateFields w:val="true" /> 
</w:settings> 

Cependant, ces deux ont l'inconvénient d'un dialogue de confirmation Lorsque le document est ouvert, il est indiqué "Ce document contient des champs pouvant faire référence à d'autres fichiers. Voulez-vous mettre à jour les champs de ce document?"

Questions connexes