seo对网站优化,微网站开发费用,上海优质建筑设计网,有哪些网站可以做兼职上节对python如何定制word的页眉页脚做了详细介绍#xff0c;当然#xff0c;要作出一篇精彩的word文档#xff0c;样式公布可没#xff0c;本章继续介绍python如何玩转word的样式。
使用样式python如何玩转word的样式
此页面使用前一页中开发的概念而不作介绍。如果术语不…上节对python如何定制word的页眉页脚做了详细介绍当然要作出一篇精彩的word文档样式公布可没本章继续介绍python如何玩转word的样式。
使用样式python如何玩转word的样式
此页面使用前一页中开发的概念而不作介绍。如果术语不熟悉请参阅word的样式参考。
访问样式
使用以下属性访问样式
document Document()
styles document.styles
styles该对象按名称提供对定义样式的字典式访问
styles[Normal]注意
内置样式使用其英文名称存储在WordprocessingML文件中例如标题1即使在本地化版本的Word上工作的用户将在UI中看到本地语言名称例如Kop 1。因为python-docx在WordprocessingML文件上运行所以样式查找必须使用英文名称。此外部站点上提供的文档允许您创建本地语言名称和英语样式名称之间的映射show
用户定义的样式也称为自定义样式未进行本地化并且使用与Word UI中显示的名称完全相同的名称进行访问。
该对象也是可迭代的。通过使用标识属性可以生成定义样式的各种子集。例如此代码将生成已定义段落样式的列表fromdocx.enum.styleimportWD_STYLE_TYPE
styles document.styles
paragraph_styles [
...s for s in styles if s.type WD_STYLE_TYPE.PARAGRAPH
...]forstyle in paragraph_styles:
...print(style.name)
...
Normal
Body Text
List Bullet
应用样式应用样式
word的paragraph对象每个有style属性。将样式对象分配给此属性将应用该样式
document Document()
paragraph document.add_paragraph()
paragraph.styleparagraph.style.name
Normal
paragraph.style document.styles[Heading 1]
paragraph.style.name
Heading 1
样式名称也可以直接分配在这种情况下python-docx将为您执行查找
paragraph.style List Bullet
paragraph.styleparagraph.style.name
List Bullet
也可以使用样式对象或其名称在创建时应用样式
paragraph document.add_paragraph(styleBody Text)
paragraph.style.name
Body Text
body_text_style document.styles[Body Text]
paragraph document.add_paragraph(stylebody_text_style)
paragraph.style.name
Body Text
添加或删除样式
通过指定唯一名称和样式类型可以向文档添加新样式fromdocx.enum.styleimportWD_STYLE_TYPE
styles document.styles
style styles.add_style(Citation, WD_STYLE_TYPE.PARAGRAPH)
style.name
Citation
style.type
PARAGRAPH (1)
使用该base_style属性指定新样式应从以下格式继承格式设置的样式
style.base_style
None
style.base_style styles[Normal]
style.base_stylestyle.base_style.name
Normal
只需调用其方法即可从文档中删除样式
styles document.styles
len(styles)
10
styles[Citation].delete()
len(styles)
9
注意
该Style.delete()方法从文档中删除样式的定义。它不会影响应用该样式的文档中的内容。具有未在文档中定义的样式的内容使用该内容对象的默认样式来呈现例如在段落的情况下为正常。
定义字符格式
字符段落和表格样式都可以指定要应用于具有该样式的内容的字符格式。可以在样式中指定可以直接应用于文本的所有字符格式。示例包括字体字体和大小粗体斜体和下划线。
这三种样式类型中的每一种都具有 提供对象访问的属性。样式的对象提供了获取和设置该样式的字符格式的属性。
这里提供了几个例子。有关完整的可用属性集请参阅API文档。
可以像这样访问样式的字体fromdocximportDocument
document Document()
style document.styles[Normal]
font style.font
字体和大小设置如下fromdocx.sharedimportPt
font.name Calibri
font.size Pt(12)
许多字体属性是三值这意味着他们可以采取的价值观 TrueFalse和None。True表示该物业处于开启状态表示该物业处于False关闭状态。从概念上讲该None值意味着继承。由于样式存在于继承层次结构中因此能够在层次结构中的正确位置指定属性非常重要通常尽可能远离层次结构。例如如果所有标题都应该是Arial字体那么在标题1 样式上设置该属性并使标题2从标题1继承更有意义。
大胆和斜体都是三态属性如全帽删除线上标等等。有关完整列表请参阅API文档
font.bold, font.italic
(None, None)
font.italic True
font.italic
True
font.italic False
font.italic
False
font.italic None
font.italic
None
下划线是一种特殊情况。它是三态属性和枚举值属性的混合体。True意味着单一下划线是迄今为止最常见的。False意味着没有下划线但None如果不需要下划线则更经常是正确的选择因为很少从基础样式继承下划线。其他形式的下划线如double或dashed是使用枚举的成员指定的
font.underline
None
font.underline True
# or perhaps
font.underline WD_UNDERLINE.DOT_DASH
定义段落格式
段落样式和表格样式都允许指定段落格式。这些样式通过其属性提供对对象的访问。
段落格式包括布局行为例如对齐缩进前后空格之前的分页控制。有关可用属性的完整列表请参阅该对象的API文档页面。
下面是一个如何创建一个段落样式的示例该段落样式具有1/4英寸的悬挂缩进上方12个点的间距fromdocx.enum.styleimportWD_STYLE_TYPEfromdocx.sharedimportInches, Pt
document Document()
style document.styles.add_style(Indent, WD_STYLE_TYPE.PARAGRAPH)
paragraph_format style.paragraph_format
paragraph_format.left_indent Inches(0.25)
paragraph_format.first_line_indent Inches(-0.25)
paragraph_format.space_before Pt(12)
paragraph_format.widow_control True
使用段落特定的样式属性
段落样式具有一个 属性该属性指定要应用于在该样式的段落之后插入的新段落的样式。当样式通常只在序列中出现一次例如标题时这非常有用。在这种情况下完成标题后段落样式可以自动设置回主体样式。
在最常见的情况正文段落中后续段落应该与当前段落具有相同的样式。如果未指定下一个段落样式则默认情况下通过应用相同样式来处理此情况。
以下是如何将标题1样式的下一个段落样式更改为正文文本的示例 fromdocximportDocument
document Document()
styles document.styles
styles[Heading 1].next_paragraph_style styles[Body Text]
可以通过分配None或样式本身来恢复默认行为
heading_1_style styles[Heading 1]
heading_1_style.next_paragraph_style.name
Body Text
heading_1_style.next_paragraph_style heading_1_style
heading_1_style.next_paragraph_style.name
Heading 1
heading_1_style.next_paragraph_style None
heading_1_style.next_paragraph_style.name
Heading 1
控制样式在Word UI中的显示方式
样式的属性分为两类行为属性 和格式属性。其行为属性控制样式在Word UI中出现的时间和位置。其格式设置属性确定应用样式的内容的格式例如字体的大小及其段落缩进。
一种风格有五种行为属性
·
·
·
·
·
有关这些行为属性如何交互的说明请参阅 的 部分以确定样式在Word UI中的显示时间和位置。
该priority属性采用整数值。其他四种样式行为属性是三态这意味着它们可以取值TrueonFalseoff或Noneinherit。
在样式库中显示样式
以下代码将使正文文本段落样式首先显示在样式库中fromdocximportDocument
document Document()
style document.styles[Body Text]
style.hidden False
style.quick_style True
style.priorty 1
从样式库中删除样式
此代码将从样式库中删除正常段落样式但允许它保留在推荐列表中
style document.styles[Normal]
style.hidden False
style.quick_style False
使用潜在样式
有关如何定义尚未在.docx文件的styles.xml部分中定义的内置样式的行为属性的说明 请参阅的和部分 。
访问文档中的潜在样式
可以从styles对象访问文档中的潜在样式
document Document()
latent_styles document.styles.latent_styles
一个对象支持len()迭代和样式名字典式的访问
len(latent_styles)
161
latent_style_names [ls.name forls in latent_styles]
latent_style_names
[Normal, Heading 1, Heading 2, ... TOC Heading]
latent_quote latent_styles[Quote]
latent_quotelatent_quote.priority
29
更改潜在样式默认值
该对象还提供对当前文档中内置样式的默认行为属性的访问。这些默认值为 定义的任何未定义属性以及没有明确潜在样式定义的内置样式的所有行为属性提供值。有关完整可用属性集的对象请参阅API文档
latent_styles.default_to_locked
False
latent_styles.default_to_locked True
latent_styles.default_to_locked
True
添加潜在的样式定义
可以使用方法添加新的潜在样式 。此代码为内置样式List Bullet添加了一种新的潜在样式将其设置为显示在样式库中
latent_style latent_styles[List Bullet]
KeyError: no latent style with name List Bullet
latent_style latent_styles.add_latent_style(List Bullet)
latent_style.hidden False
latent_style.priority 2
latent_style.quick_style True
删除潜在的样式定义
可以通过调用其delete()方法删除潜在样式定义
latent_styles[Light Grid]latent_styles[Light Grid].delete()
latent_styles[Light Grid]
KeyError: no latent style with name Light Grid
有关样式的介绍就暂时到这里老铁们有什么意见和需求请尽管提觉得不错的点个大赞。