Python自动化办公篇 - 95 - word文件自动化 - 设置图片样式与表格样式

Python自动化办公篇 - 95 - word文件自动化 - 设置图片样式与表格样式,第1张

万叶集
🎉 隐约雷鸣,阴霾天空。 🎉
🎉 但盼风雨来,能留你在此。 🎉

前言:
✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,致力于用白话讲解技术知识的博主 ✌
🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


📕 系列专栏:
               🇨🇳 Python全栈系列 - [更新中]     【 本文在该系列】
                       🍎 Python零基础入门篇
                       🍎 Python语法进阶篇
                       🍎 Python自动化办公篇
               👋 网安之路系列
​                       🍋 网安之路踩坑篇
​                       🍋 网安知识扫盲篇
​                       🍋 Vulhub 漏洞复现篇
​                       🍋 Shell脚本编程篇
​                       🍋 Web攻防篇   2021年9月3日停止更新,转战先知等安全社区
​                       🍋 渗透工具使用集锦  2021年9月3日停止更新,转战先知等安全社区
​                ⭐️ 点点点工程师系列
​                       🍹 测试神器 - Charles 篇
​                       🍹 测试神器 - Fiddler 篇
​                       🍹 测试神器 - Jmeter 篇
​                       🍹 自动化 - RobotFrameWork 系列
​                       🍹 自动化 - 基于 JAVA 实现的WEB端UI自动化
                       🍹 自动化 - 基于 MonkeyRunner 实现的APP端UI自动化

文章目录 🐳 图片居中🐳 表格居中

上一章节学习了段落的样式之后,尤其是段落的居中。那么图片是否也可以以这样的方式居中呢?居中是可以的,但是实用的居中方法与段落居中的方式还是有一点区别的。

🐳 图片居中

接下来我们看一看图片的居中(居左或居右)应该怎么做呢?

para = doc.add_paragraph 首先通过 doc 对象创建一个段落


para.alignment = WD_ALIGN_PARAGRAPH.CENTER 接下来再对这个段落进行 alignment 的设置 (需 from docx.enum.text import WD_ALIGN_PARAGRAPH


_para = para.add_run() 然后对段落进行追加内容,需要注意的是追加的内容是空的


_para.add_picture(test.png) 当得到这个追加对象的时候,可以使用 add_picture() 方法添加图片(传入的是图片地址,这样被追加进空段落的图片就可以达到居中的效果。)。

代码示例如下:

# coding:utf-8


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

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 标题可以使用的更多有趣的函数
# title = doc.add_heading('', 0)


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 段落可以使用的更多有趣的函数

para_test = doc.add_paragraph()     # 通过 doc 对象创建一个空的段落
para_test.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER     # 设置样式居中   
_para_test = para_test.add_run()    # 进行追加
image = _para_test.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')

运行结果如下:



🐳 表格居中

接下来我们就看看表格样式的设定。

首先需要获取表格样式类型,然后在众多的表格样式集中找到我们需要的样式类型(即 from docx.enum.style import WD_STYLE_TYPE)。可以通过之前学习的 styles 里面找到符合 WD_STYLE_TYPE 的表格类型即可。

在获取到表格类型之后,就需要定义表格。document.add_table(rows, cols, style) ,在第三个 style 参数中添加类型的名称即可。

代码示例如下:

# coding:utf-8


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


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 标题可以使用的更多有趣的函数
# title = doc.add_heading('', 0)


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 段落可以使用的更多有趣的函数

para_test = doc.add_paragraph()     # 通过 doc 对象创建一个空的段落
para_test.alignment = WD_ALIGN_PARAGRAPH.CENTER     # 设置样式居中
_para_test = para_test.add_run()    # 进行追加
image = _para_test.add_picture('test_image.png', width=Inches(3), height=Inches(1.5))      # 添加图片


for i in doc.styles:        # 获取 WD_STYLE_TYPE.TABLE 对应的表格样式
    if i.type == WD_STYLE_TYPE.TABLE:
        print(i.name)

table_title = ['name', 'age', 'sex']    # 定义表格的第一行的标题
table = doc.add_table(rows=1, cols=3, style='Colorful Shading Accent 5')   # 定义表格的行数、列数
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')

运行结果如下:



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/926183.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存