Как я ищу и заменяю все случаи строки в документе в формате Word мс с Python?

Я довольно озадачен в данный момент. На основе я могу использовать Win32 COM для замены текста в документе слова? Я смог кодировать простую шаблонную систему, которая генерирует документы в формате Word из шаблонного документа в формате Word (в Python).

Моя проблема состоит в том, что текст в "Текстовых полях" не является находкой тот путь. Даже в самом Word нет никакой опции искать все - на самом деле необходимо выбрать между "Основным Документом" и "Текстовыми полями". Будучи плохо знакомым с миром Windows я попытался просмотреть документы VBA для него, но не нашел справки (вероятно, из-за "текстового поля", являющегося очень распространенным словом).

word.Documents.Open(f)
wdFindContinue = 1
wdReplaceAll = 2
find_str = '\{\{(*)\}\}'
find = word.Selection.Find

find.Execute(find_str, False, False, True, False, False, \
True, wdFindContinue, False, False, False)

while find.Found:
    t = word.Selection.Text.__str__()
    r = process_placeholder(t, answer_data, question_data)

    if type(r) == dict:
        errors.append(r)
    else:
        find.Execute(t, False, True, False, False, False, \
        True, False, False, r, wdReplaceAll)

Это - соответствующая часть моего кода. Я смог обойти все проблемы один к настоящему времени (подсказка: если Вы хотите к строкам замены больше чем с 256 символами, необходимо сделать это через буфер обмена, и т.д....),

6
задан Community 23 May 2017 в 12:20
поделиться

1 ответ

Возможно, вы сможете использовать OpenOffice API , используя компонентную технологию UNO . С помощью моста Python-UNO вы можете подключиться к экземпляру OpenOffice, работающему в автономном режиме. Для начала ознакомьтесь с учебным пособием .
Это может быть излишним для вашего сценария, но это очень мощное и гибкое решение.

2
ответ дан 17 December 2019 в 20:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: