Question

I ai un DataTable avec 3 colonnes (a, b, c) et un fichier docx avec les champs correspondants MailMerge mis en place. Ce que je voudrais faire est d'effectuer une opération de publipostage sur le document avec les données.

présumons que vous pouvez écrire sur le disque dur (si vous avez besoin pour créer un etc csv pour faire la fusion, etc.), vous ne pas ont Word, Excel etc, SDK Open XML est installé, mais aussi nous pouvons installer quoi que ce soit d'autre.

En ce qui concerne la réponse, la conversion des données d'entrée pour tout ce qui est nécessaire est pas vraiment un problème, le problème est comment pour effectuer un publipostage dans le SDK Open XML (ou autre API GRATUIT ).

Comme une note de côté, la sortie doit être un fichier avec les pages n (où n est le nombre de lignes dans les données), c.-à-pas les documents n (bien que je ne me dérange pas si la fusion des documents se fait au end).

(je dois ajouter, je ne suis pas attaché au concept MailMerge, être en mesure de le faire remplacer par exemple un fonctionnerait - bien évidemment que nécessite alors la fusion des fichiers ensemble à la fin ...)

Était-ce utile?

La solution

J'ai ce travail d'une manière assez horrible - essentiellement - à l'heure actuelle, l'algorithme suit ceci:

  1. Décompressez le fichier docx
  2. Lire dans document.xml (une chaîne)
  3. String.replace les champs
  4. Rezip à docx temporaires
  5. Fusionner tous les documents temporaires créés

Le code réel pour la fusion des documents provient du blog de Eric White: http://blogs.msdn.com/ericwhite/archive/2009/02/05/move-insert- supprimer paragraphes-en-traitement mot-documents en utilisant-la-open-xml-sdk.aspx

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