извлекать значения MergeField из слитого по почте документа Word программным способом - PullRequest
1 голос
/ 22 июля 2009

У меня есть большая коллекция документов MSWord (около 40 000), которые являются результатами почтовых рассылок (один и тот же основной документ, разные источники данных).

Одним из полей слияния является текстовое поле, которое может иметь текст «Да» или «Нет».

Есть ли простой способ перечислить, для какого из документов в этом поле слияния установлено значение "Да"? (Я ожидаю приблизительно 10 000 документов "Да".)

Меня заинтересует любой подход, будь то использование самого Word, автоматизации Office, шестнадцатеричное копирование двоичных файлов и поиск определенных магических эффектов или любые готовые инструменты (сценарии perl, приложения .NET и т. Д.), Которые могут это сделать такие вещи.

Файлы находятся в общем сетевом ресурсе, доступном как с Linux, так и с Windows (и я, возможно, смогу украсть Mac на некоторое время, если необходимо), так что я не слишком беспокоюсь о том, на какой платформе работают инструменты ...

1 Ответ

1 голос
/ 22 июля 2009

Если бы они были документами Word 2007, было бы намного проще, так как формат файла - XML. (Даже с Word 2003 вы можете сохранить как XML-документ, хотя это не по умолчанию). Однако я предполагаю, что это стандартные документы Word 2003, использующие (двоичный) формат файла по умолчанию.

Я полагаю, что существуют инструменты, которые могут обрабатывать двоичный формат файла напрямую и которые могут быть в состоянии преобразовать документы в текстовые файлы, которые вы затем можете обработать - возможно, вы могли бы искать какой-то текст, появляющийся непосредственно перед полем например, «Ты серьезно?».

Однако самый простой / простой способ (но самый медленный с точки зрения времени выполнения) - написать программу на VBA для открытия каждого документа, поиска поля и извлечения результата. Это будет довольно простой VBA, и вы можете сделать это в самом Word (это будет означать, что код может использовать существующий работающий экземпляр Word). Я бы сказал, что вы можете приступить к работе через пару часов - тогда вы можете поднять ноги еще на несколько часов, пока он работает: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...