Python设置Word全局样式和文本样式的示例代码

目录
  • 全局样式的定义
  • 文本样式的定义

上一章节我们学习了如何生成 word 文档以及在文档行中添加各种内容,今天我们基于上一章节的内容进行添砖加瓦 —> 对内容进行各种样式的设置,让其能够看起来更加的美观。

全局样式的定义

通过全局样式的设置,可以使得 word 全文都可以继承这样的样式效果:

使用方法:

style = document_obj.styles['Normal']

通过 Document 对象调用 styles 对象集,通过中括号的方式选择全局样式,获得 样式对象 。

for style in document_obj.styles:	# 通过 for 循环可以查看 styles 对象集
    print(style)

styles 对象集如下:

全局定义的基本样式举例:

字体:style.font.name = '微软雅黑'

字体颜色:style.font.color.rgb = RGBColor(255, 0, 0)

通过 from docx.shared import RGBColor 调用 docx 包的三原色模块

字体大小:style.font.size = Pt(20)

通过 from docx.shared import Pt 调用 docx 包的字体大小设置模块

代码示例如下:(在上一章节的代码基础上进行 全局样式的代码演示)

# coding:utf-8

from docx import Document
from docx.shared import Inches, RGBColor, Pt

doc = Document()

style = doc.styles['Normal']    # 使用标准样式
style.font.name = '微软雅黑'     # 使用 "微软雅黑" 字体
style.font.color.rgb = RGBColor(255, 0, 0)      # 使用红色作为字体颜色
style.font.size = Pt(25)

title = doc.add_heading('this is title', 1)    # 添加 word 文件的 title 标题
title.add_run('\n - 测试版本')      # 针对 title 标题进行内容追加(换行)

para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落')

image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))      # 添加图片

table_title = ['name', 'age', 'sex']    # 定义表格的第一行的标题
table = doc.add_table(rows=1, cols=3)   # 定义表格的行数、列数
table_cells = table.rows[0].cells       # 将 table_title 的每列的名称写入表格
table_cells[0].text = table_title[0]
table_cells[1].text = table_title[1]
table_cells[2].text = table_title[2]

data = [            # 定义 data 的内容,准备将其追加写入表格
    ('Neo', '18', 'man'),
    ('Adem', '17', 'man'),
    ('Lily', '18', 'women')
]

for i in data:      # 利用 for 循环将 data 追加写入表格
    row_cells = table.add_row().cells
    row_cells[0].text = i[0]
    row_cells[1].text = i[1]
    row_cells[2].text = i[2]

doc.add_page_break()        # 添加 word 文件的分页
title = doc.add_heading('this is page_2 title', 1)    # 添加 word 文件的第二分页的 title 标题

doc.save('test.docx')

运行结果如下:

文本样式的定义

标题与段落

从上面的截图可以看出,当我们设置全局字体的颜色和大小的时候,只有段落收到了影响,而标题未受影响,这就引出了文本的样式。

字体:

obj.font.name = "微软雅黑" 这里的 obj 就表示的是 标题与段落的对象 ;与设置全局字体的方式一致。

字体颜色:

obj.font.color.rgb = RGBColor(255, 0, 0)

字体大小:

obj.font.size = Pt(20)

标题居中:

obj.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER 需要导入:from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

PS:除了居中之外,还可以居左、居右;left 或者 right

字体斜体:

obj.italic = True

为 True 是斜体;为 False 则是正常字体

字体粗体:

obj.blod = True

为 True 是粗体;为 False 则是正常字体

字体下划线:

obj.underline = True

为 True 是增加下划线;为 False 则是正常字体

代码示例如下:

# coding:utf-8

from docx import Document
from docx.shared import Inches, RGBColor, Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

doc = Document()

style = doc.styles['Normal']    # 使用标准样式
style.font.name = '微软雅黑'     # 使用 "微软雅黑" 字体
# style.font.color.rgb = RGBColor(255, 0, 0)      # 使用红色作为字体颜色
style.font.size = Pt(14)

title = doc.add_heading('', 0)      # 添加 word 文件的 title 标题;(需要注意的是,这里第一行的标题是不能设置为斜体等类型的)
                                    # 若想要将标题设置为斜体,需在这一行标题内容为空,然后针对追加内容写入标题设置为斜体
title.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER      # 标题居中
title.style.font.size = Pt(20)
title_run = title.add_run('this is title\n测试版本')      # 针对 title 标题进行内容追加(换行)
title_run.italic = True                        # 将追加的内容转为斜体字
title_run.blod = True                          # 将追加的内容转为粗体字
title_run.underline = True
# print(dir(title))       # 通过 dir 函数查看当前 title 标题可以使用的更多有趣的函数

para = doc.add_paragraph('这是 \"test.docx\" 文件的第一行段落')
para.add_run('\n这是 \"test.docx\" 文件追加的的第二行段落').italic = True    # 将第二行段落设置为斜体
para.add_run('\n这是 \"test.docx\" 文件追加的的第三行段落').blod = True      # 将第三行段落设置为粗体
para.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER     # 将段落设置为居中显示
print(dir(para))       # 通过 dir 函数查看当前 para 段落可以使用的更多有趣的函数

image = doc.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))      # 添加图片

table_title = ['name', 'age', 'sex']    # 定义表格的第一行的标题
table = doc.add_table(rows=1, cols=3)   # 定义表格的行数、列数
table_cells = table.rows[0].cells       # 将 table_title 的每列的名称写入表格
table_cells[0].text = table_title[0]
table_cells[1].text = table_title[1]
table_cells[2].text = table_title[2]

data = [            # 定义 data 的内容,准备将其追加写入表格
    ('Neo', '18', 'man'),
    ('Adem', '17', 'man'),
    ('Lily', '18', 'women')
]

for i in data:      # 利用 for 循环将 data 追加写入表格
    row_cells = table.add_row().cells
    row_cells[0].text = i[0]
    row_cells[1].text = i[1]
    row_cells[2].text = i[2]

doc.add_page_break()        # 添加 word 文件的分页
title = doc.add_heading('this is page_2 title', 1)    # 添加 word 文件的第二分页的 title 标题

doc.save('test.docx')

运行结果如下:

到此这篇关于Python设置Word全局样式和文本样式的示例代码的文章就介绍到这了,更多相关Python Word样式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python自动化办公之Word文件内容的读取

    目录 前言 利用 python 批量读取文件 word利器之python-docx python-docx 安装 python-docx 之 Document python-docx 之段落内容读取 python-docx 之表格内容读取 前言 前面几个章节我们学习了对于普通文件的操作,比如说文件的创建.复制粘贴.裁剪粘贴.文件名的重命名.删除等等.另外还学习了一些基本练习,如何查找文件.如何按照内容查找文件等等. 在本章节及后续,将开始学习一些特殊文件的自动化相关操作.如 word.excel

  • Python word文本自动化操作实现方法解析

    之前介绍了一个Python包 openpyxl ,用于处理 Excel :而对于 Word 文本时同样也有对应的 Python库 Python-docx,在日常办公中,如果需要处理多个 word 文本,且操作步骤都是重复单调的,我想这个库就可以帮到你 在了解 Python-docx 常用函数之前,需要知道 在 Python-docx 各命令所对应 word 各部件,下图所示, Document 指的是 word 文档: paragraph 对应段落: run 对应 一句话中的各个字段,样式调整时

  • Python快速优雅的批量修改Word文档样式

    需求描述 手上现有若干份财务分析报告的Word文档,如下: 每一份Word文档中的内容如下: 为了方便后续审阅,需要将所有文档中所有含有资金的语句标红加粗,如图所示 步骤分析和前置知识 为了解决这个需求简单复习一下相关知识.Word文档一般而言由文档(document) - 段落(paragraph) - 文字块(run) 三级结构组成: 从需求反馈中可以看出,本质上我们需要做的就是对所有含有资金的文字块Run进行样式调整 因此,本需求的逻辑如下: 1.创建一个空文件夹(用于存放修改后的财务报告

  • Python自动化办公之Word文档的创建与生成

    目录 保存生成 word 生成标题 生成段落 添加图片 添加表格 分页 上几章节我们主要学习了如何读取文章,而主要任务是读取文档中的文本信息,也就是字符串,而图片本身是不可读的文件所以并没有去读取图片.从今天开始将学习如何通过 python 脚本来自动生成一个 word 文档. 保存生成 word 在学习如何生成一个 word 文档之前,我们来看看如何保存生成 word 文件,因为马上就会用到. 使用方法: document_obj.save(文件地址) ---> /home/demo.docx

  • Python Word文件自动化实战之简历筛选

    目录 简历筛选 定义 ReadDoc 类用以读取 word 文件 定义 search_word 函数用以筛选 word 文件内容符合想要的简历 上一章节我们练习了通过表格和段落获取 word 文件的信息之后,现在来做一个具有实操性的小练习.通过读取简历来筛选出符合招聘条件的简历,接下来看看要如何实现这个小功能. 简历筛选 简历相关信息如下: 定义 ReadDoc 类用以读取 word 文件 已知条件: 想要查找包含指定关键字的简历(比如 Python.Java) 实现思路: 批量读取每一个 wo

  • Python读取word文本操作详解

    本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下. 一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象进行处理就是对word文档的内容处理. 二,相关概念 如果需要读取word文档中的文字(一般来说,程序也只需要认识word文档中的文字信息),需要先了解python-docx模块的几个概念. 1,Docume

  • Python设置Word全局样式和文本样式的示例代码

    目录 全局样式的定义 文本样式的定义 上一章节我们学习了如何生成 word 文档以及在文档行中添加各种内容,今天我们基于上一章节的内容进行添砖加瓦 —> 对内容进行各种样式的设置,让其能够看起来更加的美观. 全局样式的定义 通过全局样式的设置,可以使得 word 全文都可以继承这样的样式效果: 使用方法: style = document_obj.styles['Normal'] 通过 Document 对象调用 styles 对象集,通过中括号的方式选择全局样式,获得 样式对象 . for s

  • python读取word文档,插入mysql数据库的示例代码

    表格内容如下: 1.实现批量导入word文档,取文档标题中的数字作为编号 2.除取上面打钩的内容需要匹配出来入库入库,其他内容全部直接入库mysql # wuyanfeng # -*- coding:utf-8 -*- # 读取docx中的文本代码示例 import docx import pymysql import re import os # 创建数据库链接 conn = pymysql.connect( host='rm-bp1vu5d84dg12c6d59o.mysql.rds.ali

  • Python实现Word表格转成Excel表格的示例代码

    准备工作 pip install docx pip install openpyxl 具体代码 # 没有的先pip install 包名称 from docx import Document from openpyxl import Workbook document = Document('Docx文件路径.dicx') count = 0 tables = [] wb = Workbook() ws = wb.active # 设置列数,可以指定列名称,有几列就设置几个, # A对应列1,B

  • python实现企业微信定时发送文本消息的示例代码

    企业微信定时发送文本消息 使用工具:企业微信机器人+python可执行文件+计算机管理中的任务计划程序 第一步:创建群机器人 选择群聊,单击鼠标右键,添加群机器人. 建立群机器人后,右键查看机器人,如下 复制机器人的链接. 第二步:编辑python程序 import requests from datetime import datetime url = 'https://qyapi.we......' #机器人的webhook地址 headers = {'Content-type':'appl

  • python实现企业微信定时发送文本消息的实例代码

    企业微信定时发送文本消息 使用工具:企业微信机器人+python可执行文件+计算机管理中的任务计划程序 第一步:创建群机器人 选择群聊,单击鼠标右键,添加群机器人. 建立群机器人后,右键查看机器人,如下 复制机器人的链接. 第二步:编辑python程序 import requests from datetime import datetime url = 'https://qyapi.we......' #机器人的webhook地址 headers = {'Content-type':'appl

  • Flutter实现编写富文本Text的示例代码

    目录 SuperText富文本设计方案 RichText原理 方案设计 解析 代码设计 节点定义 Span构造器定义 SuperText定义 可以修改TextStyle的Span构造器 效果展示 结语 SuperText富文本设计方案 Flutter中要实现富文本,需要使用RichText或者Text.rich方法,通过拆分成List<InlineSpan>来实现,第一感觉上好像还行,但实际使用了才知道,有一个很大的问题就是对于复杂的富文本效果,无法准确拆分出具有实际效果的spans.因此想设

  • python+pywinauto+lackey实现PC端exe自动化的示例代码

    欢迎阅读 最近一年多一直在从事PC端exe的测试,也是趁着闲余时间,调研了下exe的自动化. 核心框架为python+pywinauto+lackey这样的一个组合方式 本文以大家熟知的Tim为例子,实现打开exe,输入账号密码并且登录,搜索具体聊天对象,发送消息,并退出账号的一系列简单操作. 依然是从环境搭建开始,我会尽我所能,详细的去介绍每一步,让各位能看懂我每一步操作的目的和理由.只对代码感兴趣的,跳到文章最后即可. 框架介绍 以python3为基础进行程序设计. pywinauto是基于

  • Python实现希尔排序,归并排序和桶排序的示例代码

    目录 1. 前言 2. 希尔排序 2.1 前后切分 2.2 增量切分 3. 归并排序 3.1 分解子问题 3.2 求解子问题 3.3 合并排序 4. 基数排序 5. 总结 1. 前言 本文将介绍希尔排序.归并排序.基数排序(桶排序). 在所有的排序算法中,冒泡.插入.选择属于相类似的排序算法,这类算法的共同点:通过不停地比较,再使用交换逻辑重新确定数据的位置. 希尔.归并.快速排序算法也可归为同一类,它们的共同点都是建立在分治思想之上.把大问题分拆成小问题,解决所有小问题后,再合并每一个小问题的

  • Python快速实现简易贪吃蛇小游戏的示例代码

    贪吃蛇(也叫做贪食蛇)游戏是一款休闲益智类游戏,有PC和手机等多平台版本.既简单又耐玩.该游戏通过控制蛇头方向吃蛋,从而使得蛇变得越来越长. 贪吃蛇游戏最初为单机模式,后续又陆续推出团战模式.赏金模式.挑战模式等多种玩法. 另外还有一种名为“贪吃蛇”钻井测井技术,是运用旋转导向系统.随钻测井系统等的油气田定向钻井.随钻测井技术,可完成海上“丛式井”和复杂油气层的开采需求,大幅降低油气田开发综合成本. 依然是基于pygame库,pip install pygame安装即可 完整代码如下: # 导入

  • Python用摘要算法生成token及检验token的示例代码

    # 基础版,不依赖环境 import time import base64 import hashlib class Token_hander(): def __init__(self,out_time): self.out_time = out_time self.time = self.timer pass def timer(self): return time.time() def hax(self,str): """ 摘要算法加密 :param str: 待加密字符

随机推荐