Итерация по предложениям / абзацам ячеек - таблицы docx - PullRequest
0 голосов
/ 13 января 2020

Я хочу перебирать предложения / абзацы в ячейках таблицы docx, выполняя функции в зависимости от их тегов стиля с помощью модуля pywin32.

Я могу вручную выбрать ячейку, используя cell = table.Cell(Row = 1, Column =2)

Я пытался использовать что-то вроде

for x in cell:
#do something

, но <class 'win32com.client.CDispatch'> объекты "не поддерживают перечисление"

Я пытался просматривать : Слово OM , чтобы найти решение, но безрезультатно (я понимаю, что это для VBA, но все еще может быть очень полезным)

1 Ответ

1 голос
/ 15 января 2020

Вот простой пример, который читает содержимое из первой строки / первого столбца первой таблицы в документе и печатает его пословно:

import win32com.client as win32
import os

wordApp = win32.gencache.EnsureDispatch("Word.Application")
wordApp.Visible = False
doc = wordApp.Documents.Open(os.getcwd() + "\\Test.docx")
table = doc.Tables(1)
for word in table.Cell(Row = 1, Column = 1).Range.Text.split():
    print(word)
wordApp.Application.Quit(-1)

Содержимое ячейки просто строку, вы также можете легко разделить ее по абзацам, используя split('\r') или по предложениям, используя split('.').

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