Python实现Word文档样式批量处理
作者:Python?集中营 发布时间:2022-01-13 01:16:05
标签:Python,Word,样式,处理
这里批量处理word文档的操作主要是通过python-docx非标准库实现的,通过定位到文档对象、再到段落、最后到一行文本从而完成针对文字对象的处理。
使用pip的方式安装python-docx
pip install python-docx
将实现过程中需要的模块导入进来
from docx import Document # 文档处理对象
from docx.shared import RGBColor, Pt, Cm # 文本样式处理
import os # 应用/文件处理
import glob # 文件处理
定义需要处理的文件路径及生成的目标文件的路径
source_file = 'C:/source' # 来源文件路径
target_file = 'C:/target' # 目标文件路径
将需要批量处理样式的word文档放到source目录下面,我这里准备了一个文档作为演示处理。
下面是处理文本样式的代码块实现部分。
for current_file in glob.glob(source_file + '/*.docx'): # 遍历word文档文件
word_obj = Document(current_file) # 初始化word对象
for para in word_obj.paragraphs: # 遍历当前文档段落
for run in para.runs: # 遍历当前段落的文本块
if 'Python' in run.text: # 判断当前文本块是否包含Python字符串
run.font.underline = True # 加上下划线
run.font.color.rgb = RGBColor(255, 0, 0) # 设置字体颜色为红色
word_obj.save(target_file + '/' + os.path.basename(current_file))
处理完成的效果如下:
执行完上述代码块就可以实现我们想要的效果:批量设置word文档样式。
最后,再补充几个工具的使用方式,设置字体颜色时可以参考下面的颜色对照表。
颜色对照表地址
其他字体样式的设置参考下面的代码块
'''
# 加粗
font.bold = True
# 斜体
font.italic = True
# 下划线
font.underline = True
# 删除线
font.strike = True
# 字号
font.size = Pt(20)
# 阴影
font.shadow = True
'''
使用时,直接在文本块中调用即可。在上面的文本处理中我们使用的是加下划线设置。
run.font.underline = True # 加上下划线
比如:若是需要添加阴影则直接在当前对应的文本块中进行类似的处理。
run.font.shadow = True
最后,需要注意的一点是在执行处理时不要将word文档使用wps或其他工具打开,否则会出现找不到文件的报错信息。
来源:https://www.cnblogs.com/lwsbc/p/16328219.html


猜你喜欢
- 前言pandas处理时间的对象有很多,分别表示不同的作用。本次介绍固定时间对象和时间长对象。还是先导入包:import numpy as n
- using System; using System.Data; using System.Configuration; using Sys
- 一、安装插件要生成html类型的报告,需要使用pytest-html插件,可以在IDE中安装,也可以在命令行中安装。插件安装的位置涉及到不同
- 简介一个基于Python的程序,使用tkinter模块创建一个GUI界面,在Checklistbox中列出系统中正在运行的进程的名称和PID
- 题目描述997. 找到小镇的法官 - 力扣(LeetCode)小镇里有 n 个人,按从 1 到 n 的顺序编号。传言称,这些人中有一个暗地里
- 这里要注意的是js的时间戳是13位,php的时间戳是10位,转换函数如下: var nowtime = (new Date).getTime
- tf定义了tf.app.flags,用于支持接受命令行传递参数,相当于接受argv。import tensorflow as tf#第一个是
- 一、Requests库的7个主要的方法1.request()构造请求,支撑以下的基础方法2.get()获取HTML页面的主要方法,对应于ht
- 对于np.argmax()让我迷惑了很久,尤其是其中的axis=1的比较结果。一、np.argmax()的理解1、最简单的例子假定现在有一个
- 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。一个循环在C语言等其他
- IE下专属CSS:<![if !IE]><link rel="stylesheet" type=&qu
- asp过滤留言中脏话的代码例子<!--#include file="../conn/dbconn1.asp"--&
- 内容摘要:Microsoft建立了一种既灵活又强大的安全管理机制,它能够对用户访问SQL Server服务器系统和数据库的安全进行
- 本文实例讲述了Selenium元素的常用操作方法。分享给大家供大家参考,具体如下:Selenium是一个用于Web应用程序测试的工具。Sel
- 提到 super,最直接的想法就是它代表了父类,替父类执行某些方法。但是理解也仅止步于此,下面对 super 做进一步理解super 的完整
- 依赖项目基础配置使用 vue-cli 生成自适应方案核心: 阿里可伸缩布局方案 lib-flexiblepx转rem:px2rem,它有we
- 引言在做接口测试的时候,我们不仅需要将测试结果以报告的形式展示,还需要将测试结果以邮件的形式发送到需要知道的人手中。那么如何发送邮件呢?邮件
- 前言今天我看到线性规划模型开头的介绍,特别不错,因此,我把它记录下来了,分享给大家在工程技术、经济管理、科学研究、军事作战训练及日常生活等众
- 老外真是聪明,这个方法也想得到,有兴趣的不妨试试,但是如果对方的服务器安全搞的很好的话,这个代码也许就不能用了,但不管怎么样,学习一下也是好
- 我刚进入5gsns的时候,我真不知道怎么玩,我是通过白鸦的博客过去的,之前也没有怎么去玩过这类的网站。对于sns网站还算是陌生,不过还好网站