python自动化办公:玩转word之页眉页脚秘笈

简介: python自动化办公:玩转word之页眉页脚秘笈

节将就python操作word的页眉页脚技巧做深入介绍。

使用页眉和页脚


python操作word的页眉页脚技巧做深入介绍

Word支持页眉页脚。页眉是出现在每个页面的上边距区域中的文本,与文本主体分开,并且通常传达上下文信息,例如文档标题,作者,创建日期或页码。文档中的页眉在页面之间是相同的,内容上只有很小的差异,例如更改部分标题或页码。页眉也称为运行头

一个页面页脚中的每个日日夜夜,只不过它出现在页面底部的页头类似。它不应与脚注混淆,脚注在页面之间不一致。为了简洁起见,这里经常使用术语标题来指代可以是页眉或页脚对象的内容,信任读者以理解它对两种对象类型的适用性。

访问节的标题

页眉和页脚与一个部分相关联; 这允许每个部分具有不同的页眉和/或页脚。例如,横向部分可能具有比纵向部分更宽的标题。

每个section对象都有一个.header属性,提供对该节的对象的访问:

>>> document = Document()

>>> section = document.sections[0]

>>> header = section.header

>>> header

<docx.section._Header object at 0x...>

甲目的是总是存在于Section.header,即使当没有报头该节限定。实际标头定义的存在表示为_Header.is_linked_to_previous:

>>> header.is_linked_to_previous

True

值为True表示对象不包含标题定义,该节将显示与上一节相同的标题。这种"继承"行为是递归的,因此"链接"标题实际上从具有标题定义的第一个前一部分获得其定义。此"链接"状态在Word UI中显示为 "与以前相同"

新文档没有标题(在它包含的单个部分),因此 .is_linked_to_previous就是True这种情况。请注意,这种情况可能有点违反直觉,因为没有要链接的前一个节头。在此"无前一个标题"的情况下,不显示标题。







添加标题(简单情况)

只需编辑 对象的内容即可将标题添加到新文档中。一个对象是一个"故事"容器及其内容进行编辑,就像一个对象。请注意,与新文档一样,新标题已包含单个(空)段落:

>>> paragraph = header.paragraphs[0]

>>> paragraph.text = "Title of my document"


添加内容(甚至只是访问header.paragraphs)的行为添加了标头定义并

另请注意,添加内容(甚至只是访问header.paragraphs)的行为添加了标头定义并更改了以下状态.is_linked_to_previous:

>>> header.is_linked_to_previous

False

添加"分区"标题内容

具有多个"区域"的标题通常使用精心放置的制表位来完成。中心和右对齐"区域"所需的制表位是HeaderWord中潜在样式的一部分 ,但该样式不存在于默认python-docx 模板中,需要添加:

>>> from docx.enum.style import WD_STYLE_TYPE

>>> from docx.enum.text import WD_TAB_ALIGNMENT

>>> styles = document.styles

>>> style = styles.add_style("Header", WD_STYLE_TYPE.PARAGRAPH)

>>> style.base_style = styles["Normal"]

>>> tab_stops = style.paragraph_format.tab_stops

>>> tab_stops.add_tab_stop(Inches(3.25), WD_TAB_ALIGNMENT.CENTER)

>>> tab_stops.add_tab_stop(Inches(6.5), WD_TAB_ALIGNMENT.RIGHT)

如果您使用的是自定义模板而不是python-docx默认模板,那么在模板中定义该样式可能是有意义的。

一旦Header式存在时,突片用于分离左,中和右对齐头内容:

>>> paragraph = header.paragraphs[0]

>>> paragraph.text = "Left Text Center Text Right Text"

>>> paragraph.style = document.styles["Header"]


突片用于分离左,中和右对齐头内容:



删除标题

可以通过分配True其 .is_linked_to_previous属性来删除不需要的标头:

>>> header.is_linked_to_previous = True

>>> header.is_linked_to_previous

True

True分配给 标题时,标题的内容将被不可逆转地删除.is_linked_to_previous。

理解多节文档中的标题

"刚开始编辑"方法适用于简单的情况,但为了理解多节文档中的标题行为,一些简单的概念将有所帮助。简而言之:

1. 每个部分都可以有自己的标头定义(但不必)。

2. 缺少标头定义的部分会继承之前部分的标头。当存在定义而不存在_Header.is_linked_to_previous定义时,该属性仅反映标头定义的False存在True。

3. 缺少标头定义是默认状态。新文档没有已定义的标题,也没有新插入的部分。.is_linked_to_previous报告 True这两种情况。

4. 如果_Header对象的内容具有标题定义,则它是自己的内容。如果不是,它的内容是第一现有节的具有标题的定义。如果没有节具有标题定义,则在第一节中添加新节,并且所有其他节继承该节。这种添加标头定义是在第一次访问标头内容时发生的,可能是通过引用 header.paragraphs。



添加标题定义(一般情况)

可以通过赋予False其.is_linked_to_previous属性来为缺少一个节的节提供显式标头定义 :

>>> header.is_linked_to_previous

True

>>> header.is_linked_to_previous = False

>>> header.is_linked_to_previous

False

新添加的标头定义包含一个空段落。请注意,以这种方式保留标题偶尔会有用,因为它有效地"关闭"该部分的标题以及之后的标题,直到具有已定义标题的下一部分。

分配False给.is_linked_to_previous已具有标头定义的标头不会执行任何操作。

自动定位继承的内容

编辑标题的内容会编辑标题的内容,同时考虑任何"继承"。因此,例如,如果第2节标题继承自第1节并且您编辑第2节标题,则实际上更改了第1节标题的内容。除非您首先明确指定False其.is_linked_to_previous属性,否则不会为第2节添加新的标头定义。

相关文章
|
2月前
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
77 14
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
179 61
|
2月前
|
Python Windows
Python实现常用办公文件格式转换
本文介绍了如何使用Python及其相关库(如`pandas`、`openpyxl`、`python-docx`等)实现办公文件格式间的转换,包括XLS转XLSX、DOC转DOCX、PPT转PPTX、Word转PDF及PDF转Word,并提供了具体代码示例和注意事项。
200 89
|
22天前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
58 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
2月前
|
存储 人工智能 人机交互
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
PC Agent 是上海交通大学与 GAIR 实验室联合推出的智能 AI 系统,能够模拟人类认知过程,自动化执行复杂的数字任务,如组织研究材料、起草报告等,展现了卓越的数据效率和实际应用潜力。
192 1
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
|
1月前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
65 3
|
2月前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
83 7
|
2月前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
4月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
95 4
|
18天前
|
机器学习/深度学习 人工智能 运维
基于AI的自动化事件响应:智慧运维新时代
基于AI的自动化事件响应:智慧运维新时代
83 11

热门文章

最新文章