本人在自动化部门使用 python 实现自动化,在空闲时间整理如下常用的 python 调用 word 来实现自动化的办公,也希望笔者的疑惑能得到大家的回答,当然随着不断学习,笔者也会不断更新,希望大家多多支持。
笔者使用的是 PyCharm ,其版本号如下
使用方法:
又或者查找某个路径下的文档,这里以查找当前文件夹下的docx为例
以上方法可以打开当前目录下的字典序最小的 docx 文件 (把 break 去掉可以遍历所有 docx)
如上代码在运行时会创建新docx并在docx文段末添加对应文本并设置其格式为 正文,如果不知道,内置的格式可以使用以下方法查看
样式格式的设置,相当于设置了一个字体的模板,对于经常使用的格式来说会比较方便
如果docx没有内置您需要的文字格式,那么有一种最简单的方法就是外部设置一个模板(一个集合了您需要所有格式的docx,这样可以使用导入的方法白嫖内置格式)。当然,也可以折磨自己,学习如何在 python 中设置自己的 styple ,但是在设置的时候记得看看 docx 中有没有使用过相同的类型名字,不然...可能会把内置的格式给覆盖了...
如下代码为例,设置了自己的正文格式与标题格式,以及常用的图片解释的文字格式。
从上到下分别设置了字体加粗、字体大小,字体格式,字体颜色,字体位置(靠左 or 居中),听说能设置以下功能,但还未测试
1. 表格的插入
在更好格式代码中,这里应该添加 Row 和 Column 来记录行列数,并将其包装在函数中,方便调用。
如果在文档格式中不需要单独修改某个单元格的颜色,则建议以迭代器的方式遍历表格会更好。
2. 设置行高和列宽
默认是每个单元格的大小是一样的
如果是不统一修改,可以提前定义 width 和 height 方便后续更改
3. 一些笔者未解决的小问题:
1. 在以上代码中只能做表格的水平居中对齐,没有垂直居中对齐,找了很久都找不到(笔者真的很需要这个...)
2. 上述代码中修改单元格颜色使用了类内的东西,破坏了类的完整性,有没有别的方法修改单元格颜色呢
插入时候的 插入是用来调整图片位置的,当然用空格也可以,笔者认为这样调整比较灵活(纯个人想法)。而在图片导入时,笔者认为固定图片的大小比例会比较好,所以,仅仅调节图片的横纵放缩比k,可以保证图片不会因为多次变换而变形。
当然,也有通过插入一个表格,在表格里面放置图片的方法来对齐图片。
而对于导入图片的函数可以调节以下参数:旋转角度、图片的宽高、透明度等。
以上网站包含了常用的格式,方便查看,当然也可以用代码调用的方式查看
这种方法好像可以调整段落的间距的比例系数,好像不是默认值也可以(狂喜)
1. 字体颜色修改
注意这里不能用类似 p.style.font.color.rgb 的方式修改,不然就会把该 styple 的所有格式的文字颜色都修改了
2. 字体背景颜色的修改
这里的代码是借鉴 http://t.csdnimg.cn/ehqsP 中的思路
1. 对段落的遍历
2. 对段落的关键字提取
至此,可以使用 python 在段落中做检索,以搜索包含关键字的所有段落
3. 替换 word 中原段落内容信息
4. 删除 word 中的指定段落
1. word 纸张大小
2. 纸张方向
本来是想把 excel 也写了,但是发现太长了,先写到这里,(也方便查看,主要是因为懒)。希望大家如果发现有 bug 也可以提出一下,笔者有补充的也会及时更新的...