Comment remplacer le contenu dans le document modèle docx et Open XML SDK 2.0 (août 09)?

StackOverflow https://stackoverflow.com/questions/1361588

  •  20-09-2019
  •  | 
  •  

Question

J'ai un document docx « modèle » qui contient la disposition souhaitée et que vous souhaitez insérer du contenu en utilisant C #, mais je ne peux pas trouver un moyen de traiter uniquement des sections spécifiques du document, des paragraphes ou des tableaux. Quelle est la meilleure façon d'identifier de manière unique les éléments du document? Merci, Matt Sharpe.

Était-ce utile?

La solution

Comment est votre modèle construit? Est-il utiliser un schéma XML sous-jacent chargé dans le cadre du * .docx? Vous utilisez des contrôles de contenu hors du ruban de développeur, auquel cas chaque contrôle est identifié de manière unique par un nom de balise donné? Ces deux approches rendrait l'identification de certaines sections de votre document plus facile que vous pouvez contrôler où les tables ou les paragraphes seraient.

, vous pouvez également envisager d'utiliser le Open XML SDK 2.0 (utilise .NET 3.5). Il comprend un outil réflecteur document pratique qui vous permet d'ouvrir et examiner tout document Open XML et montre comment générer le code pour tout élément que vous cliquez sur.

En dehors de cela, pour en savoir plus sur les contrôles de contenu que vous pouvez vérifier ces messages:

Autres conseils

Pouvez-vous utiliser des variables / champs documents? Il suffit d'aller à Insérer-> rapide Parts-> Fields-> Doc variable, entrez le nom de la variable.

exemple

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

Vous pouvez aussi utiliser des valeurs de texte d'espace réservé comme « ## insert_first_name ## », puis faire une recherche et remplacer pour ces variables.

exemple

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

Je pense que vous cherchez soit signets, ou des contrôles de contenu (dans l'onglet Développeur du ruban, exemple de code ici )
Je l'ai utilisé plages nommées dans Excel dans le même but.

Il y a plusieurs options pour le faire.

J'ai créé une simple bibliothèque open source qui remplacera les étiquettes par des valeurs.

Par exemple Hi {name} avec data={name:"John"} sera remplacé par Hi John.

Ici, il est: https://github.com/edi9999/docxtemplater

Démo: http://javascript-ninja.fr/docxgenjs/examples/demo. html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top