Я хочу изменить цвет границы, и я получаю его XML, вызывая style._element.xml:
style._element.xml
>>> document = Document() >>> run = document.add_heading(u'', 0).add_run('hello world') >>> paragraphs = document.paragraphs >>> print(paragraphs[0].style._element.xml) <w:style xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" w:type="paragraph" w:styleId="Title"> <w:name w:val="Title"/> <w:basedOn w:val="Normal"/> <w:next w:val="Normal"/> <w:link w:val="TitleChar"/> <w:uiPriority w:val="10"/> <w:qFormat/> <w:rsid w:val="00FC693F"/> <w:pPr> <w:pBdr> <w:bottom w:val="single" w:sz="8" w:space="4" w:color="4F81BD" w:themeColor="accent1"/> </w:pBdr> <w:spacing w:after="300" w:line="240" w:lineRule="auto"/> <w:contextualSpacing/> </w:pPr> <w:rPr> <w:rFonts w:asciiTheme="majorHAnsi" w:eastAsiaTheme="majorEastAsia" w:hAnsiTheme="majorHAnsi" w:cstheme="majorBidi"/> <w:color w:val="17365D" w:themeColor="text2" w:themeShade="BF"/> <w:spacing w:val="5"/> <w:kern w:val="28"/> <w:sz w:val="52"/> <w:szCs w:val="52"/> </w:rPr> </w:style>
Теперь я хочу изменить цветовой код в границе атрибута, как я могу это сделать?
paragraph.style._element - это объект lxml.etree._Element, поэтому что-то вроде этого должно помочь:
paragraph.style._element
lxml.etree._Element
from docx.oxml.ns import qn bottom = paragraph.style._element.xpath("./w:pPr/w:pBdr/w:bottom")[0] bottom.set(qn("w:color"), "FF00FF")