python-docx: найти имя заголовка, в котором таблица находится внутри документа MS Word - PullRequest
0 голосов
/ 06 октября 2019

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

from docx import Document
from docx.shared import Inches
document = Document('test.docx')

tabs = document.tables

1 Ответ

1 голос
/ 20 октября 2019

Вы можете извлечь структурированную информацию из файла docx, используя xml. Попробуйте это:

doc = Document("file.docx")
headings = [] #extract only headings from your code
tables = [] #extract tables from your code
tags = []
all_text = []
schema = '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}'
for elem in doc.element.getiterator():
    if elem.tag == schema + 'body':
        for i, child in enumerate(elem.getchildren()):
            if child.tag != schema + 'tbl':
                 node_text = child.text
                 if node_text:
                     if node_text in headings:
                         tags.append('heading')
                     else:
                         tags.append('text')
                     all_text.append(node_text)
             else:
                 tags.append('table')
        break

После вышеприведенного кода у вас будет список тегов, которые будут отображать структуру заголовка документа, текста и таблицы, после чего вы сможете отобразить соответствующие данные из списков.

Также проверьте данные из списка тегов, чтобы получить заголовок таблицы.

...