当前位置: 首页 > article >正文

Python 操作 Word 页眉页脚完整指南

加班到晚上十点我终于改完了那份50页的季度报告。按下保存关掉电脑心里想着明天终于可以交差了。结果第二天一早领导说“小张报告做得不错但每页顶部加上公司Logo和保密级别底部加上页码和日期。”打开那50页的文档我愣住了。难不成要一页一页手动加正当我准备认命时旁边同事瞥了一眼“你不会用Python吗几行代码的事。”就这样我踏上了折腾Word页眉页脚的路。选哪个库这事儿得说清楚Python操作Word主要有两大家族python-docx和Aspose.Words。前者免费开源后者是商业产品但功能更强。免费的真香。python-docx虽然有些地方需要绕弯路但应付日常工作绰绰有余。商业版强大但收费除非你的工作天天跟文档打交道否则先别急着掏钱。安装也很简单pip install python-docx搞定。我们从头开始。页眉页脚在哪里先找到“节”Word文档里藏着一个概念叫“节”。每个文档至少有一个节节下面才有页眉和页脚。这就像找文件得先进文件夹。from docx import Document doc Document() section doc.sections[0] # 获取第一个节拿到节之后页眉和页脚就暴露了header section.header footer section.footer就这么简单。往页眉里写点东西页眉其实就是一个可以放文字、图片的地方。往里面加内容的方式跟正文差不多from docx import Document doc Document() section doc.sections[0] # 拿到页眉加个段落 header section.header header_para header.paragraphs[0] # 默认就有一个段落 header_para.text 公司机密文件 - 严禁外传 doc.save(report.docx)这段代码执行完打开文档每页顶部都会出现这行字。想玩点花样调整字体和对齐方式from docx.shared import Pt from docx.enum.text import WD_PARAGRAPH_ALIGNMENT header_para.text 公司机密文件 header_para.style.font.size Pt(12) header_para.alignment WD_PARAGRAPH_ALIGNMENT.CENTER页脚里加个页码页码比普通文字麻烦一点。python-docx不直接支持自动页码但可以插入Word的域代码来实现。from docx.oxml import OxmlElement from docx.oxml.ns import qn def add_page_number(paragraph): 在段落中插入自动页码 run paragraph.add_run() # 添加页码域代码 fldChar OxmlElement(w:fldChar) fldChar.set(qn(w:fldCharType), begin) run._r.append(fldChar) instrText OxmlElement(w:instrText) instrText.text PAGE run._r.append(instrText) fldChar OxmlElement(w:fldChar) fldChar.set(qn(w:fldCharType), end) run._r.append(fldChar) # 使用 footer section.footer footer_para footer.paragraphs[0] add_page_number(footer_para)保存文档后页脚就会显示当前页码。封面不要页眉没问题很多文档要求封面不显示页眉从第二页开始才需要。这就需要用到“首页不同”的设置。section doc.sections[0] section.different_first_page_header_footer True # 首页页眉留空或放不同内容 first_header section.first_page_header first_header.paragraphs[0].text # 封面不显示 # 其他页面的正常页眉 normal_header section.header normal_header.paragraphs[0].text 内部资料书籍排版还有个小讲究奇数页和偶数页的页眉可以不一样。奇数页放章节名偶数页放书名打开书的时候左右两侧看起来特别协调。# 开启奇偶页不同 section.odd_and_even_pages_header_footer True odd_header section.odd_page_header odd_header.paragraphs[0].text 第一章 Python基础 even_header section.even_page_header even_header.paragraphs[0].text Python编程指南页眉里放个Logo公司的Logo往页眉一放文档档次立马不一样。from docx.shared import Inches header section.header para header.paragraphs[0] run para.add_run() run.add_picture(logo.png, widthInches(1.5)) # 文字跟在图片后面 run para.add_run( 某某科技有限公司)Logo别太大1到1.5英寸宽就够了。图片路径要写对不然Word会报错。文档分节不同部分不同设置长文档通常要分节。封面是一节目录是一节正文又是一节。每节的页眉页脚可以完全独立。关键在于打断“链接到前一节”的关系# 获取第二节索引1 section2 doc.sections[1] # 断开链接这样第二节的页眉就可以独立设置了 section2.header.is_linked_to_previous False section2.footer.is_linked_to_previous False # 现在可以自由设置第二节的页眉了 section2.header.paragraphs[0].text 正文部分的页眉Word文档操作的核心秘密就在这里节是独立单位但默认会继承前一节想独立就必须断开链接。批量处理几十个文档一键搞定实际工作中经常要处理一堆文档。循环遍历就行了import os from docx import Document def add_header_to_all(directory, header_text): 给目录下所有docx文件添加相同的页眉 for filename in os.listdir(directory): if filename.endswith(.docx): filepath os.path.join(directory, filename) doc Document(filepath) section doc.sections[0] header section.header header.paragraphs[0].text header_text doc.save(filepath) # 覆盖保存 print(f处理完成: {filename}) # 使用 add_header_to_all(./reports, 2024年度报告)几十个文件几秒钟就搞定了不用一个个打开。踩坑提醒python-docx对已经存在的文档修改页眉时有个坑要注意。如果文档的页眉以前被设置成“链接到前一节”修改可能会不生效。解决办法很简单section doc.sections[0] section.header.is_linked_to_previous False先断开再操作保证没问题。还有个常见问题页码显示不出来怎么办Word打开后按CtrlA全选再按F9刷新所有域代码页码就出来了。因为域代码需要手动触发更新。结语那50页的报告我后来用Python跑了不到一秒就全部加好了页眉页脚。领导看了很满意我也有时间提前下班。页眉页脚这东西说白了就是Word给每页加的一个固定区域。Python操作它核心就是找到“节”拿到页眉或页脚对象然后往里面填内容。分节、断开链接、首页不同、奇偶不同就这几个概念弄懂了就能应对绝大多数场景。如果你只是偶尔用python-docx完全够用。如果要做很复杂的企业级文档自动化再考虑商业方案也不迟。代码写完了记得关电脑下班。

相关文章:

Python 操作 Word 页眉页脚完整指南

加班到晚上十点,我终于改完了那份50页的季度报告。按下保存,关掉电脑,心里想着明天终于可以交差了。结果第二天一早,领导说:“小张,报告做得不错,但每页顶部加上公司Logo和保密级别,…...

Zotero SciPDF插件终极指南:三步实现文献PDF自动下载

Zotero SciPDF插件终极指南:三步实现文献PDF自动下载 【免费下载链接】zotero-scipdf Download PDF from Sci-Hub automatically For Zotero7 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-scipdf 还在为文献下载而烦恼吗?Zotero SciPDF插…...

卡内基梅隆大学:AI智能体社交网络中的隐私危机比想象的更严重

这项由卡内基梅隆大学研究团队主导的前沿研究于2026年4月发表在预印本平台上,论文编号为arXiv:2604.01487v2。研究团队开发了名为AgentSocialBench的全新评估基准,这是世界上首个专门用于测试以人为中心的AI智能体社交网络中隐私风险的系统性工具。当我们…...

C++ STL常用容器1——string容器

写在前面:⭐如果本篇博文对你有帮助,那就关注 点赞 收藏一下吧! 目录 1.string基本概念 2.string构造函数 3.string容器 4.string字符串拼接 5.string查找和替换 6.string字符串比较 7.string字符存取 8.string插入和删除 9.strin…...

量化后VQA准确率暴跌17.3%?——多模态模型INT4压缩的5个反直觉陷阱与工业级绕过策略

第一章:量化后VQA准确率暴跌17.3%?——多模态模型INT4压缩的5个反直觉陷阱与工业级绕过策略 2026奇点智能技术大会(https://ml-summit.org) 在真实产线部署中,将ViLT或BLIP-2等VQA主干模型从FP16压缩至INT4常导致准确率断崖式下跌——某金融…...

kali 软件源设置为国内站点配置详解

Kali Linux 国内镜像源配置指南备份原始源列表执行以下命令备份原始配置文件&#xff1a;sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak阿里云镜像源配置sudo tee /etc/apt/sources.list << EOF deb https://mirrors.aliyun.com/kali kali-rolling main non-…...

Blender3mfFormat插件深度解析:3D打印工作流中的关键技术实现与性能优化

Blender3mfFormat插件深度解析&#xff1a;3D打印工作流中的关键技术实现与性能优化 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 在3D打印行业蓬勃发展的今天&#xf…...

JetBrains IDE评估期重置技术解析:跨平台配置清理与插件化实现方案

JetBrains IDE评估期重置技术解析&#xff1a;跨平台配置清理与插件化实现方案 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 在JetBrains系列IDE开发环境中&#xff0c;评估期限制是开发者在学习和测试阶段面临…...

d3d9.dll文件丢失怎么办?教你免费下载修复方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…...

D3DCompiler_47.dll文件不存在 无法启动问题 教你免费下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…...

网盘直链下载助手:2025年最完整的跨平台云盘下载解决方案

网盘直链下载助手&#xff1a;2025年最完整的跨平台云盘下载解决方案 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 在当今数据驱动的时代&#xff0c;云存储服务已成为个人和企业数据管理的…...

【2026最硬核AI底层能力】:AIAgent元学习从理论到工业级部署的4道生死关卡与绕过方案

第一章&#xff1a;AIAgent元学习能力的范式革命与SITS2026定义 2026奇点智能技术大会(https://ml-summit.org) 从任务特化到认知自适应的跃迁 传统AI代理依赖于预设任务结构与静态策略库&#xff0c;而AIAgent的元学习能力标志着其可自主演化学习机制——在未见过的任务分布…...

深度解析开源音效引擎:Equalizer APO 5大实战技巧与专业配置方案

深度解析开源音效引擎&#xff1a;Equalizer APO 5大实战技巧与专业配置方案 【免费下载链接】equalizerapo Equalizer APO mirror 项目地址: https://gitcode.com/gh_mirrors/eq/equalizerapo 作为一款开源的系统级音频处理引擎&#xff0c;Equalizer APO 通过创新的模…...

当AI Agent开始参与立法听证——SITS2026专家亲历的3个真实案例(含未公开会议纪要)

第一章&#xff1a;SITS2026专家&#xff1a;AIAgent的社会影响 2026奇点智能技术大会(https://ml-summit.org) AIAgent已从实验室原型演进为嵌入城市治理、医疗决策与教育服务的常态化社会基础设施。在SITS2026大会上&#xff0c;来自全球17个国家的跨学科专家指出&#xff…...

【Hadoop进阶】Hadoop生态圈实战指南:从核心组件到典型应用场景解析

1. Hadoop生态圈的核心价值与架构设计 第一次接触Hadoop的人常会被它庞大的生态体系吓到&#xff0c;但理解其设计哲学后就会发现非常直观。我在2013年第一次部署Hadoop集群时&#xff0c;最惊讶的是它用普通服务器就能搭建起PB级数据处理能力。Hadoop生态圈本质上是用分布式架…...

Agent 安全的真正战场:一文看懂大模型智能体的攻击面重构

今天很多人谈 Agent 安全&#xff0c;脑子里想到的还是老三样&#xff1a;提示注入、越狱、输出审核。但这篇论文真正想说的是&#xff0c;当大模型从“会回答”变成“会调用工具、会接外部知识、会自己规划任务”之后&#xff0c;安全问题就已经不再是单纯的内容安全问题&…...

【技术综述】世界模型演进图谱:从Dyna到Sora,理解与预测的双重变奏

1. 世界模型的起源与核心使命 1989年&#xff0c;强化学习先驱Richard Sutton在论文中首次提出Dyna架构时&#xff0c;可能没想到这个概念会成为人工智能理解世界的基石。当时他正在思考一个简单却深刻的问题&#xff1a;智能体如何像人类一样&#xff0c;通过想象来规划行动&…...

d3dx10_38.dll文件不存在 找不到 无法启动 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…...

尚硅谷大数据项目电商数仓6.0学习记录----数据仓库(中)

1. ODS层数据装载与自动化调度实战 在电商数仓项目中&#xff0c;ODS层作为数据仓库的第一站&#xff0c;承担着原始数据的"蓄水池"角色。我遇到过不少新手在数据装载环节踩坑&#xff0c;最常见的问题就是手动执行SQL导致数据不一致。这里分享一个真实案例&#xf…...

STM32高精度定时器(HRTIM1)实现倍频、定时器触发采样

STM32高精度定时器&#xff08;HRTIM1&#xff09;&#xff1a;精准定时与同步触发的强大引擎在嵌入式系统开发中&#xff0c;尤其是在数字电源、电机控制、照明及各类高精度PWM应用领域&#xff0c;定时器的精度和灵活性往往成为系统性能的关键瓶颈。STM32系列微控制器内置的高…...

C复习13(排序算法)

#技术笔记1.冒泡排序这个排序要能自己直接敲出来,由于每一轮有交换,导致数据就像冒泡泡一样,冒到数组的末尾,所以叫做冒泡排序。冒泡排序稳定&#xff0c;时间复杂度O(n^2),空间复杂度O(1) (这里就给出一种代码&#xff0c;从小到大的排序顺序冒了&#xff0c;后面都是按从小到…...

mysql5.7的rownumber写法

db2中的语句select * from ( select rownumber() over (order by a.stdcno) as num , a.id ,b.cuno from t1 a ,t2 b where a.id b.id ) as Amysql5.7中的语句select cast(row_num : row_num 1 as char) AS num , A.* from (select row_num :0) r,( select a.id, b.cuno fro…...

新概念英语第一册141_Sally s first train ride

Lesson 141: Sally’s first train ride 萨莉第一次乘火车旅行 Watch the story and answer the question Why was the mother embarrassed? Because Sally said the middle-aged lady was ugly.Key words and expressions excited 兴奋的get on 登上middle-age…...

为什么越来越多工程师选择英飞凌芯片?优势分析

作为一名在嵌入式硬件领域从业多年的工程师&#xff0c;我经常被问到这样一个问题&#xff1a;“英飞凌芯片好不好&#xff1f;值不值得在项目中优先考虑&#xff1f;”说实话&#xff0c;前几年我对这个问题还有些犹豫&#xff0c;但近几年随着项目经验的积累&#xff0c;尤其…...

昆仑通态屏幕制作(进阶篇)---动态交互设计(滑块控制与状态反馈)

1. 滑块控制的动态联动实现 在工业控制场景中&#xff0c;滑块是最直观的交互控件之一。昆仑通态屏幕的滑块控制功能&#xff0c;可以实现对设备参数的精细调节。比如控制电机转速、调节温度设定值等场景&#xff0c;都需要滑块输入与其他显示元素的动态联动。 1.1 滑块与进度…...

Blender 3MF插件终极指南:5步实现3D打印工作流优化

Blender 3MF插件终极指南&#xff1a;5步实现3D打印工作流优化 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat Blender3mfFormat插件是Blender生态系统中专为3D打印工作流…...

相机照片详细参数怎么修改?4款工具,新手零失误

拍好的照片参数不对真的很糟心&#xff01;要么光圈显示错了&#xff0c;要么ISO、焦距乱标&#xff0c;相机型号还可能被搞错。想改却找不到简单的工具&#xff0c;要么软件太复杂&#xff0c;要么改完参数不生效&#xff0c;甚至把原图画质搞坏了。其实用对工具超简单&#x…...

如何修改图片的exif信息?6款工具,新手也能秒会

一、什么是EXIF信息&#xff1f;为什么要修改&#xff1f;EXIF信息就像图片的"身份证"&#xff0c;记录着拍摄时的详细数据&#xff0c;比如相机型号、拍摄时间、GPS位置、光圈快门等参数。平时发朋友圈、传文件时&#xff0c;如果不注意这些信息&#xff0c;可能会不…...

打造你的私人游戏云:Sunshine串流服务器从零到精通

打造你的私人游戏云&#xff1a;Sunshine串流服务器从零到精通 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 还在为游戏设备限制而烦恼吗&#xff1f;想在任何地方都能畅玩你的P…...

874653

867453...