Я хотел бы открыть существующий документ слов, где я уже добавил номера страниц и просто добавляю в него текст и заголовок.добавить контент в существующий docx с помощью python-docx
Вот простой пример того, как я пытался достичь моей цели
#!/usr/bin/env python
from docx import Document
document = Document('report-template.docx')
document.add_heading('Headline No. 1', level=1)
document.add_paragraph('Test No. 1')
document.add_heading('Heading No. 2', level=2)
document.add_paragraph('Test No. 2')
document.save('example.docx')
Когда я выше упоминали с полным свежим документом все отлично работают - при этом с уже существующим файлом он не с следующая ошибка
Traceback (most recent call last):
File "create-report-test.py", line 6, in <module>
document.add_heading('Headline No. 1', level=1)
File "/usr/lib/python2.7/site-packages/docx/document.py", line 43, in add_heading
return self.add_paragraph(text, style)
File "/usr/lib/python2.7/site-packages/docx/document.py", line 63, in add_paragraph
return self._body.add_paragraph(text, style)
File "/usr/lib/python2.7/site-packages/docx/blkcntnr.py", line 38, in add_paragraph
paragraph.style = style
File "/usr/lib/python2.7/site-packages/docx/text/paragraph.py", line 111, in style
style_or_name, WD_STYLE_TYPE.PARAGRAPH
File "/usr/lib/python2.7/site-packages/docx/parts/document.py", line 75, in get_style_id
return self.styles.get_style_id(style_or_name, style_type)
File "/usr/lib/python2.7/site-packages/docx/styles/styles.py", line 113, in get_style_id
return self._get_style_id_from_name(style_or_name, style_type)
File "/usr/lib/python2.7/site-packages/docx/styles/styles.py", line 143, in _get_style_id_from_name
return self._get_style_id_from_style(self[style_name], style_type)
File "/usr/lib/python2.7/site-packages/docx/styles/styles.py", line 57, in __getitem__
raise KeyError("no style with name '%s'" % key)
KeyError: u"no style with name 'Heading 1'"
Я прочитал под http://python-docx.readthedocs.org/en/latest/user/documents.html справки о но, кажется, я что-то не хватает - кто-нибудь есть идея?
Заранее спасибо
Великий - это именно вопрос. Теперь он работает, когда я определяю все стили вручную. Но возможно ли загрузить этот стиль со свойствами по умолчанию? Вот что я сделал, но стили только "простые" пункты: 'стили = document.styles' ' styles.add_style ('Heading 1', WD_STYLE_TYPE.PARAGRAPH, встроенные = True) ' Я надеюсь, что флаг 'builtin' исправит это. – mat1010
№ Нет встроенных настроек встроенных стилей. Вам нужно будет выяснить, какие свойства необходимы каждому из них, и применять их самостоятельно. Вы можете использовать opc-diag для просмотра части styles.xml в пакете .docx, где они определены, чтобы узнать, какие настройки необходимы. Встроенные стили варьируются в зависимости от стандартных тем, версий Word и т. Д., Поэтому нет универсального набора. Заголовки довольно простые; возможно, три или четыре настройки, такие как размер шрифта, пробел перед и на основе. Я бы попробовал это, если вы не можете определить исходный документ. – scanny
Большое спасибо за вашу помощь. Я буду работать над выяснением свойств этих стилей по умолчанию и применять их самостоятельно. – mat1010