python 操作word页眉表格_Python 如何对word文档(.docx)的页眉和页脚进行编辑?
刚好接了个任务要批量修改一批docx页眉,经过一天面向so编程,以下是代码。因为本人只是业余,代码是能用就好,如有错误请指出。
PS1.对齐什么的懒得调了。
PS2.不适用于doc格式
#批量修改docx文件页眉
import os,zipfile,tempfile
import shutil as su
from bs4 import BeautifulSoup as bs
import codecs
#一个读取word/header1.xml的函数
#用于读取模板docx文件的页眉xml
def get_word_xml(docxpath):
with zipfile.ZipFile(docxpath) as zf:
xml_content = zf.read('word/header1.xml')
return xml_content
#解压缩docx,替换header1.xml,重新打包压缩的函数
def zipdocx(inputdocx,outputdocx,edited_xml):
#因为之后出现无法删除tmp文件夹的事故,修改了默认文件夹位置
temppath = r'your dir\temp'
tmp_dir = tempfile.mkdtemp(dir = temppath)
#获取解压缩之前的文件树状结构,方便重新压缩
zf = zipfile.ZipFile(inputdocx)
filenames = zf.namelist()
zf.extractall(tmp_dir)
#替换header1
with codecs.open(os.path.join(tmp_dir,'word/header1.xml'),'w',encoding = 'utf8') as f:
f.write(str(edited_xml))
#如果有header2,用header1替换header2
#出现header2的原因是设置了首页页眉不同,所以将两个文件内容统一即可
try:
with codecs.open(os.path.join(tmp_dir,'word/header2.xml'),'w',encoding = 'utf8') as f:
f.write(str(edited_xml))
except:
pass
#打包替换后的全部文件
zip_copy_name = outputdocx
with zipfile.ZipFile(zip_copy_name,"w") as docx:
for filename in filenames:
docx.write(os.path.join(tmp_dir,filename),filename)
#不明原因删除temp失败orz,之后手动删除。如果前面没有修改默认temp目录,可能需要重启电脑。
try:
su.rmtree(tmp_dir)
except:
pass
#输入文件夹
inputpath = r'your dir\docxfiles'
#输出文件夹
outputpath = r'your dir\output'
#作为模板的docx文件,事先改好页眉格式,本脚本只修改文字。
headerSAMPLE = r'your dir\SAMPLE.docx'
#修改内容
something = r''
#获取输入文件夹内文件列表
inputdocxfiles = os.listdir(inputpath)
for inputdocxfile in inputdocxfiles:
if inputdocxfile.endswith('.docx'):
intputdocx = os.path.join(inputpath,inputdocxfile)
outputdocxfile = inputdocxfile.rstrip('.docx') + '-edited.docx'
outputdocx = os.path.join(outputpath,outputdocxfile)
#BeautifulSoup处理xml文件,无需关心xml namespace
tree = get_word_xml(headerSAMPLE)
soup = bs(tree,'xml')
#修改‘w:t’的.string属性即可修改页眉文字
#这里将文字放置在第一个‘w:t’即可,剩下的留空
for i in range(len(headers)):
if i == 0:
soup.find_all('w:t')[i].string = something
else:
soup.find_all('w:t')[i].string = ''
#main
if __name__ == '__main__':
zipdocx(intputdocx,outputdocx,soup)
python 操作word页眉表格_Python 如何对word文档(.docx)的页眉和页脚进行编辑?相关推荐
- python下载图片到文件夹_python实现解析markdown文档中的图片,并且保存到本地~
背景 前阵子简书好像说是凉了,搞得我有点小慌,毕竟我的大部分博客都是放在简书上面的,虽然简书提供了打包导出功能,但是只能导出文字,图片的话还是存在简书服务器上面,再加上我一直想要重新做一个个人博客,于 ...
- word中出现表格错乱 ,从别的文档里面复制过来的(或者自己建表格时)表格总是格式错乱
解决办法:其实超级简单,你ctrl+v的时候看一下,有一个保留原格式,这个东西搞了我好久
- Word 2010文档自动生成目录和某页插入页码
一.Word 2010文档自动生成目录 关于Word文档自动生成目录一直是我身边同学们最为难的地方,尤其是毕业论文,经常因为目录问题,被要求修改,而且每次修改完正文后,目录的内容和页码可能都会发生变化 ...
- 怎么查看计算机一共多少文档,不打开Word文档如何查看文章有几页 -电脑资料
关于这个命题,似乎有点悬了! 当我们面对一大堆文档的时候,如果想查看一下每一篇文档到底有多少页的时候? 平时您是不是这样做的呢?一篇文档一篇文档的打开,之后通过使用插入页码的方法在文档中插入页码,之后 ...
- word文档怎么删除多余的空白页?
在使用Word的过程中,总会遇到各种各样的问题,比如Word文档要怎么删除多余的空白页?如果不删除的话感觉非常别扭还影响Word文档的美观,那具体要怎么删除呢?下面我们就来瞧瞧. 空白页产生的原因一: ...
- 在html中怎么去除空白页,word文档里多一张空白页,如何删除?
用过word办公软件的同行都会经常遇到,编辑word文档时会莫名其妙地多出一页空白页出来,有时想要删除却无法办到,特别是在word文档中间多一页空白页,删除后会把后页的部分内容或表格也给删掉了,很苦恼 ...
- Python实现Excel表格图片下载-腾讯文档收集表下载Excel表格后下载图片
代码目的 QQ腾讯文档收集表下载本地后变成Excel表格,可是腾讯文档内的图片变成了链接,为了不手动保存图片,所以写出以下代码来实现自动保存图片. 代码原理 准备工作: python编译器 pytho ...
- python能做的100件事-01-python处理office文档
文章目录 0. 环境说明 1. python处理word文档 1.1 基础操作 1.2关于基础操作的补充: 1.2.1关于Document对象: 1.2.2 关于段落属性的设置 1.2.3 样式设置 ...
- Python自动化办公学习- 获取文件夹下的所有文档的名字并存储到Excel
Python自动化办公学习- 获取文件夹下的所有文档的名字并存储到Excel 这是我第一次学习使用csdn发布学习笔记,如有版权侵犯,引用不当的地方,请立即提示我,我会删除,谢谢. 笔记中如有解释错误 ...
- freemarker 制作word文档docx案例
主要用于生成特定word文档,需要替换docx中的文字,书签,图片,动态表格等 本文以生成docx为例,doc文件目前有一些问题 例如图片或模板不好处理等,暂不考虑. 思路: 1)熟悉docx文件的结 ...
最新文章
- [转]面向GPU的多LOD因子的大规模场景可视化策略
- 累加器配上委托也可以很吊
- Android开发学习之路-让注解帮你简化代码,彻底抛弃findViewById
- main方法一定要放在public类当中吗?
- React条件渲染列表渲染
- 阿里纳斯Adidas广告词
- 串口 多个activity 安卓_一个Activity实时向另一个Activity发送消息
- android AsyncTask 详细例子
- 如何在delphi里面控制Edit只能输入数字
- python数据框列命名_python-按列名称处理pandas数据框值
- 套路(二):火星求生的经济节奏引导
- 宝岛探险(C语言 )(DFS+BFS)
- 如何用python turtle 画出奥运五环图
- vue.js实现单选框、复选框和下拉框
- 基于彩色直方图自适应检测电影镜头切换
- matlab矩阵生成与编辑方法
- 数据库,计算机网络、操作系统刷题笔记20
- C语言中对结构体赋初值
- Scala学习4之快学scala第六章习题之6.6花色枚举
- https证书自签名
热门文章
- defy+me525+android2.3.6官方镜像包,摩托罗拉 DEFY+ 2.3.7 ROM刷机包MIUI版
- 亲测有效win10系统QQ音乐无法安装
- Centos7安装字体全过程
- android开发日历,Android日历开发详解
- 四旋翼无人机PID调节(无数次实验总结经验和理论支持)
- (转)iPhone +ipad尺寸规范(界面 图标)
- TDP158RSBR 6-Gbps 转接驱动器,兼容HDMI2.0
- 关于Chrome的谷歌翻译和IDEA中的Translation翻译插件无法使用的解决方法
- 吴恩达《深度学习专项》笔记+代码实战(六):改进梯度下降算法(mini-batch, Momentum, Adam)
- 3DMAX导出插件编写(续)