2009-07-22 9 views
1

J'ai une grande collection de documents MSWord (environ 40 000), qui sont les résultats de mailmerges (même document principal, différentes sources de données). L'un des champs de fusion est un champ de texte qui pourrait avoir le texte "Oui" ou "Non".Récupérer les valeurs MergeField à partir du document Word fusionné par courrier électronique

Existe-t-il un moyen facile de lister les champs ayant ce champ de fusion à la valeur "Oui"? (Je m'attends à environ 10.000 "Oui" documents.)

Je serais intéressé par une approche, que ce soit en utilisant Word lui-même, Office Automation, hexdumping les fichiers binaires et grepping pour certains magie, ou des outils prêts à l'emploi (scripts Perl, applications .NET, etc) qui peuvent faire ce genre de chose. Les fichiers sont sur un partage réseau accessible à partir de deux boîtes Linux et Windows (et je peux probablement voler un Mac pendant un petit moment si nécessaire), donc je ne suis pas trop inquiet de la plate-forme sur laquelle les outils fonctionnent.

Répondre

1

S'il s'agissait de documents Word 2007, ce serait beaucoup plus facile, car le format de fichier est XML. (Même avec Word 2003, vous pouvez enregistrer en tant que document XML, bien que ce ne soit pas la valeur par défaut). Je suppose toutefois que ce sont des documents Word 2003 standard utilisant le format de fichier par défaut (binaire). Je crois qu'il existe des outils qui peuvent traiter le format de fichier binaire directement, et qui pourraient être en mesure de convertir les docs en fichiers texte que vous pourriez ensuite traiter - probablement vous pourriez rechercher du texte apparaissant juste avant le champ, par exemple "Es-tu sérieux:". Cependant, le moyen le plus simple/le plus simple (mais le plus lent, en termes de temps d'exécution) serait d'écrire un programme VBA pour ouvrir chaque document, rechercher le champ et extraire le résultat. Ce serait VBA assez simple, et vous pourriez le faire dans Word lui-même (ce qui signifierait que le code pourrait utiliser l'instance en cours d'exécution de Word). Je dirais que vous pourriez mettre cela en marche dans quelques heures - alors vous pourriez mettre vos pieds pendant quelques heures de plus pendant qu'il faisait son travail :-)

+0

Oui, c'est mon évaluation de la situation à la moment. J'envisageais d'utiliser wvWare comme option de processeur binaire, ou la route VBA. J'espérais que quelqu'un avait soit a) des suggestions d'outils préexistants/scripts VBA, soit b) des documents sur l'emplacement du format binaire. – Stobor

Questions connexes