目标文件夹内有多份 Word 文件 ——【xxx涨薪通告.docx】,我们需要在这些文档的末尾处添加公司的电子章与公司名称。

这次的任务困难吗?手动操作起来其实很简单,无非就是先打开一个文档,接着在结尾处添加文字盖章:并且插入电子章图片,然后另起一行,添加公司名称闪光科技金融公司(Shining Fintech Company),将公司名称的字号设置为四号,字体加粗,右对齐;完成这些操作后,复制这些文字和图片,最后保存文档。

实现代码:

import os
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt# 设置目标文件夹路径
path = "../工作/涨薪通告-练习/"# 获取目标文件夹下的所有文件名
file_list = os.listdir(path)for file in file_list:# 拼接文件路径file_path = path + file# 打开 Word 文件doc = Document(file_path)# 添加 Paragraph 对象 para_1para_1 = doc.add_paragraph('盖章: ')# 添加 Run 对象 run_stamprun_stamp = para_1.add_run()run_stamp.add_picture("./Shining.png")# 添加 Paragraph 对象 para_2para_2 = doc.add_paragraph()# 设置对齐方式para_2.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.RIGHT# 添加 Run 对象 run_comprun_comp = para_2.add_run('闪光科技金融公司(Shining Fintech Company)')# 设置字体run_comp.font.size = Pt(14) # 字体大小run_comp.font.bold = True # 字体加粗# 保存文件doc.save(file_path)

本次代码的详细流程图如下所示:

值得一提的是,流程图中添加文字的逻辑对应了简化版的代码。

你也可以使用常规版的流程(添加 Paragraph 对象 -> 添加 Run 对象 -> 添加文字)来添加文字。

本次项目需要使用到的新语法如下图所示:

模块分解

接着就可以打开下一个文档,在文档的最后粘贴刚才的文字和图片,然后保存并关闭文档。一直重复此操作,直到处理完所有的文档。

然后再让属性 font 调用 size,根据上面的表格,将导入的 Pt 设置好后赋值给 size 就可以设置字体的大小了。

具体写法如下所示:

from docx.shared import Pt# 设置字体大小
Run 对象.font.size = Pt(14) # 字体大小

5.2.2 设置加粗

设置字体加粗的方式特别简单,一行代码就可以解决。

我们可以通过属性 font 调用 bold,然后将值设置为 True 即可。

具体写法如下所示:

# 设置字体加粗
Run 对象.font.bold = True # 字体加粗

font 属性还有很多其他功能,常用的还有给字体加下划线、删除线、斜体、颜色、指定字体等,只是他们与本项目无关,这里就用图片简单介绍一下,感兴趣的自己去操作。

5.3 功能块练习

这个功能块都是些记忆性的知识,写代码的时候记得参考上面的那些示例代码,照猫画虎就可以实现添加带样式的文字这个功能块了。

from docx import Document
# 导入控制对齐方式所需
from docx.enum.text import WD_ALIGN_PARAGRAPH
# 导入控制字体大小所需
from docx.shared import Pt# 设置文件路径
file_path = './马邦德涨薪通告.docx'# 打开文档
doc = Document(file_path)
# 添加段落2
para = doc.add_paragraph()
# 设置对齐方式
para.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.RIGHT
# 添加 run_comp
run_comp = para.add_run("闪光金融公司(Shining Finance Company)")
# 设置字体大小为 14pt
run_comp.font.size=Pt(14)
# 设置字体加粗
run_comp.font.bold=True
# 保存文件
doc.save('./添加带样式的文字.docx')

运行效果:

一定要记住,设置字体要在 Run 对象中进行,不要越俎代庖。Paragraph 对象的属性管段落在文档中的位置,Run 对象的属性负责文字在段落中的样式。分工明确,各司其职。

6.2 知识归纳与总结

本节是对使用 python-docx 处理 Word 文件的知识讲解。

首先是 python-docx 会将 Word 文件分为三个层级:Document 对象、Paragraph 对象和 Run 对象。

然后是添加文字的两种方法:

添加图片可以使用Run 对象.add_picture(path)

另外需要铭记的是:

设置段落的排版与布局,需要使用 Paragraph 对象的属性:paragraph_format
设置文字的字体样式,需要使用 Run 对象的属性:font

最后来看看本节的知识点思维导图。

用Python处理Word文档相关推荐

  1. python操作word文档(python-docx)

    python操作word文档(python-docx) 1. 效果图 1.1 python-docx文档标题段落(等级.加粗.斜体.居中)效果图 1.2 python-docx字体(加粗.斜体.居中. ...

  2. Python 操作Word文档插入图片和表格实例演示

    Python 操作Word文档插入图片和表格实例演示 效果图 实现过程 ① python-docx 库安装 ② word 文档插入图片演示 ③ word 文档插入表格演示 [ 文章推荐 ] Pytho ...

  3. 用python将word文档导入数据库_python读取word文档,插入mysql数据库的示例代码

    表格内容如下: 1.实现批量导入word文档,取文档标题中的数字作为编号 2.除取上面打钩的内容需要匹配出来入库入库,其他内容全部直接入库mysql # wuyanfeng # -*- coding: ...

  4. python操作word文档中的图片_Python操作word文档插入图片和表格的实例演示

    前言P6Q免费资源网 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码P6Q免费资源网 实例代码: ...

  5. python 读取word_教你怎么使用 Python 对 word文档 进行操作

    使用Python对word文档进行操作 一.安装Python-docx Python-docx是专门针对于word文档的一个模块,只能读取docx 不能读取doc文件.说白了,python就相当于wi ...

  6. python获取word页数_使用Python的word文档的页数(Number of pages of a word document with Python)...

    使用Python的word文档的页数(Number of pages of a word document with Python) 有没有办法用Python有效地获得word文档(.doc,.doc ...

  7. python读取word文档并做简单的批量文档筛选

    python读取word文档并做简单的批量文档筛选 最近参与了一项解析大量的word文档(试验报告形式)的工作,因为其中包含着一些对项目无意义的报告,所以要进行初步地筛选,通过查阅资料发现了pytho ...

  8. Python读取Word文档段落或者表格

    Python解析word文档 1 .安装并导依赖包 2.word的doc格式转docx格式 3.解析word_doc文档段落.表格内容 4.word读取表格存列表封装优化,节省读取时间 1 .安装并导 ...

  9. Python进行office操作 - 用Python读写Word文档入门

    目录 0.场景 1.安装python-docx模块 2.读取Word文档 3.写入Word文档 (1)全局样式介绍 (2)调整word样式 (3)创建并写入word (4)设置多段落 (5)设置标题 ...

  10. 利用python操作word文档

    总目录:Python数据分析整理 本文代码参考自官方文档: python-docx 使用的库下载方式为:pip install python-docx 注意!! 不是:pip install docx ...

最新文章

  1. 切换不了摄像头 高拍仪_手机摄像头模组支架保护膜的变革之路
  2. datatables 一行数据生成两行_一行代码搞定分组回归
  3. 希尔排序python实现
  4. 端口复用:隐藏 嗅探与攻击
  5. 作为后端开发如何设计数据库系列文章 设计SaaS系统表结构
  6. python isupper需要调包吗_密码强度等级
  7. mybaitis List入参
  8. Intellij IDEA远程debug教程实战和要点总结
  9. Swift:一个简单的货币转换器App在iOS10中的分析和完善
  10. 《刻意练习》读书分享
  11. 亚马逊被人差评了怎么办?
  12. 《数字图像处理》自学笔记(一)
  13. oracle rrsf_Oracle实战笔记(第三天)
  14. c语言之文件操作,C语言之——文件操作模式
  15. mysql取当天0点0分下一天0点0分_SQL获取当天0点0分0秒和23点59分59秒方法
  16. 【解决报错】java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
  17. 解决macos安装升级时报错安装所选更新时发生错误的问题
  18. 服务器ocs系统,ocs的部署与应用(一)
  19. 调用MapReduce进行词频统计
  20. 2022年北京大学计算机考研复试分数线出来了吗?

热门文章

  1. 你说这里都是我的喜欢
  2. 比MySQL快801倍,太颠覆了!
  3. 华为方舟编译器和鸿蒙,终于来了,方舟编译后程序完美运行在鸿蒙上,脱离安卓就在眼前?...
  4. 怎么取消苹果手机自动续费_苹果手机被订阅自动续费了怎么办 苹果退款
  5. ubuntu 微信显示乱码方框wine
  6. 破解索尼PS4系列:利用网页漏洞实现相关的ROP攻击(一)
  7. Selenium WebDriver元素定位方式+定位失败原因总结
  8. 人狠话不多!阿里成立半导体公司「平头哥」:首款 AI 芯片明年面世
  9. ps修改照片像素(大小)、分辨率。
  10. 国内首家浏览器书签分享网站,这个网站太牛了