Вставить поле с номером страницы в таблицу MS Word с помощью Python (win32com) - PullRequest
0 голосов
/ 21 мая 2019

С использованием Python (win32com) я хочу вставить определенный пользователем номер страницы в ячейку таблицы MS Word. Обычно в Word, если я хочу, чтобы пользовательский номер страницы отличался от стандартной переменной PAGE, я нажимаю Cnrtl + F9 и вставляю выражение поля, например, {= {PAGE} +3}. Поэтому я хочу получить его на Python.

Я пытался вставить поле в ячейку таблицы:

import win32com.client as win32
word = win32.Dispatch('Word.Application')
document = word.ActiveDocument

myRange = document.Paragraphs(1).Range
myTable = document.Tables.Add(myRange, 5, 5,
                          win32.constants.wdWord8TableBehavior)
cellRange = myTable.Cell(2, 2).Range    

myField = document.Fields.Add(
    cellRange,
    win32.constants.wdFieldEmpty,
    'PAGE',
    True)

В результате я получаю это сообщение:

«Файл» C: \ Users \ 2E78 ~ 1 \ AppData \ Local \ Temp \ gen_py \ 3.7 \ 00020905-0000-0000-C000-000000000046x0x8x7 \ Fields.py ", строка 35, в Добавить , Тип, Текст, Сохранять форматирование) pywintypes.com_error: (-2147352567, «Ошибка.», (0, «Microsoft Word», «Эта команда недоступна.», «wdmain11.chm», 37373, -2146823683), нет) "

P.S. Я пытался записать макрос в Word, чтобы увидеть команды VBA, но, похоже, он записывает только самые базовые действия.

...