Вы можете извлечь структурированную информацию из файла 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
После вышеприведенного кода у вас будет список тегов, которые будут отображать структуру заголовка документа, текста и таблицы, после чего вы сможете отобразить соответствующие данные из списков.
Также проверьте данные из списка тегов, чтобы получить заголовок таблицы.