Python学习的自我理解和想法(26)

简介: 这是一篇关于使用Python操作Word文档的学习总结,基于B站千锋教育课程内容编写。主要介绍了通过`python-docx`库在Word中插入列表(有序与无序)、表格,以及读取docx文件的方法。详细展示了代码示例与结果,涵盖创建文档对象、添加数据、设置样式、保存文件等步骤。虽为开学后时间有限下的简要记录,但仍清晰梳理了核心知识点,有助于初学者掌握自动化办公技巧。不足之处欢迎指正!

学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码!

今天是学Python的第26天,学的内容是运用Python在Word中插入列表和表格,以及读取docx文件。开学了,时间不多,写得不多,见谅。
目录
1.导入插
2.在Word中插入列表
(1).创建word文档对
(2).添加无序列表
(3).添加有序列表
(4).保存文档
(5).示例
(6).结果
3.在Word中插入表格
(1).创建word文档对象
(2).准备要插入的数据
(3).添加表格
(4).为表格添加数据
(5).保存文档
(6).示例
(7).结果
(8).其他表格样式
(9).合并单元格
4.读取docx文件
(1).创建word对象
(2).可以查看对象格式(不强求)
(3).读取文章
(4).读取表格
(5).示例
(6).结果
总结


1.导入插件

from docx import Document

2.在Word中插入列表

(1).创建word文档对象

语法:docx.Document()

document = docx.Document()

(2).添加无序列表

语法:document.add_paragraph(列表内容,列表样式)
在下面的代码中,我们使用style = 'List Bullet'来指定段落的样式为无序列表项。也可以通过循环来添加多个无序列表项.

# 添加无序列表
document.add_paragraph('第一步:hello',style='List Bullet')
document.add_paragraph('第二步:world',style='List Bullet')

也可以通过循环来添加多个无序列表项.

items = ['Apple', 'Banana', 'Orange']
for item in items:
    document.add_paragraph(item, style='List Bullet')

(3).添加有序列表

语法:document.add_paragraph(列表内容,列表样式)
在下面的代码中,我们使用style = 'List Number'来指定段落的样式为无序列表项。

document.add_paragraph('刘备',style='List Number')
document.add_paragraph('关羽',style='List Number')
document.add_paragraph('张飞',style='List Number')

也可以通过循环来添加多个有序列表项.

items = ['First step', 'Second step', 'Third step']
for index, item in enumerate(items, start=1):
    document.add_paragraph(f'{index}. {item}', style='List Number')

(4).保存文档

语法:document.save()

   document.save('new_document.docx')

(5).示例

from docx import Document

# 列表分为有序列表和无序列表(序号)

# 创建word文档对象
document = Document()

# 添加无序列表
document.add_paragraph('第一步:hello',style='List Bullet')
document.add_paragraph('第二步:world',style='List Bullet')

# 通过循环来添加多个无序列表项
items = ['Apple', 'Banana', 'Orange']
for item in items:
    document.add_paragraph(item, style='List Bullet')

# 添加有序列表
document.add_paragraph('刘备',style='List Number')
document.add_paragraph('关羽',style='List Number')
document.add_paragraph('张飞',style='List Number')

# 通过循环来添加多个有序列表项
items = ['First step', 'Second step', 'Third step']
for index, item in enumerate(items, start=1):
    document.add_paragraph(f'{index}. {item}', style='List Number')

document.save('../pycharm测试文件/test69附件-列表.docx')

(6).结果

image.png

3.在Word中插入表格

(1).创建word文档对象

语法:docx.Document()

document = docx.Document()

(2).准备要插入的数据

records = (
    ('亚瑟','战士英雄'),
    ('白起','坦克英雄'),
    ('赵云','刺客英雄'),
    ('女娲','法师英雄')
)

(3).添加表格

语法:table = document.add_table(rows = n,cols=n)

table = document.add_table(rows = 1,cols=2)
table.style = 'Dark List'  # 背景:Light List-白色,Dark List-黑色
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '姓名'
hdr_cells[1].text = '类型'

可以通过遍历表格的单元格来添加内容

for row in table.rows:
    for cell in row.cells:
        cell.text = 'Cell content'

(4).为表格添加数据

for name,type in records:
    row_cells = table.add_row().cells
    row_cells[0].text = name
    row_cells[1].text = type

(5).保存文档

语法:document.save()

document.save('new_document.docx')

(6).示例

from docx import Document

# 创建word文档对象
document = Document()

# 准备要插入的数据
records = (
    ('亚瑟','战士英雄'),
    ('白起','坦克英雄'),
    ('赵云','刺客英雄'),
    ('女娲','法师英雄')
)

# 添加表格
table = document.add_table(rows = 1,cols=2)
table.style = 'Dark List'  # 背景:Light List-白色,Dark List-黑色
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '姓名'
hdr_cells[1].text = '类型'

# 为表格添加行
for name,type in records:
    row_cells = table.add_row().cells
    row_cells[0].text = name
    row_cells[1].text = type

# 保存到文档中
document.save('../pycharm测试文件/test70附件-插入表格.docx')

(7).结果

image.png

(8).其他表格样式

python-docx提供了一些内置的表格样式,可以通过属性table.style来设置.
在下面的代码中,我们将表格的样式设置为 “Table Grid”,这是一种带有边框和网格线的样式,还可以根据需要选择其他的表格样式,比如 “Light Shading”、“Light Shading Accent 1” 等。

table.style = 'Table Grid'

也可以自定义表格的边框、字体颜色等样式。

for row in table.rows:
    for cell in row.cells:
        # 设置边框
        cell._element.tcPr.append(docx.oxml.shared.OxmlElement('w:tcBorders'))
        cell._element.tcPr.tcBorders.left = docx.oxml.shared.OxmlElement('w:single')
        cell._element.tcPr.tcBorders.right = docx.oxml.shared.OxmlElement('w:single')
        cell._element.tcPr.tcBorders.top = docx.oxml.shared.OxmlElement('w:single')
        cell._element.tcPr.tcBorders.bottom = docx.oxml.shared.OxmlElement('w:single')

        # 设置字体颜色
        run = cell.paragraphs[0].runs[0]
        run.font.color.rgb = docx.shared.RGBColor(0, 0, 255)

(9).合并单元格

table.cell(0, 0).merge(table.cell(0, 1))

合并后的单元格内容会保留在左上角的单元格中,可以通过该单元格的txt属性来设置内容

table.cell(0, 0).text = 'Merged cell'

4.读取docx文件

(1).创建word对象

document = Document("XXX")

(2).可以查看对象格式(不强求)

document = Document("XXX")
print(document)

(3).读取文章

语法:读取段落: for paragraph(简写为p) in doc.paragraphs

                                 print(p.text)

       读取列表:for index,p in enumerate(document.paragraphs):
                                 print(index,p.text)
for index,p in enumerate(document.paragraphs):
    print(index,p.text)

(4).读取表格

for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text)

(5).示例

image.png

(6).结果

image.png

总结

通过使用python-docx库,我们可以轻松地在Python中操作 Word 文档,插入列表和表格等内容。这为我们的自动化办公提供了很大的便利,可以大大提高工作效率。希望本文对你有所帮助!

在实际应用中,你可以根据自己的需求进一步扩展和定制代码,实现更复杂的功能。例如,可以从外部数据源读取数据,动态地插入到表格中;或者根据特定的条件设置表格的样式等。

同时,python-docx库还有很多其他的功能,如设置段落格式、添加页眉页脚等。大家可以参考官方文档来了解更多的用法。

这是我今天学Python的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!

相关文章
|
2月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
331 1
|
2月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
196 1
|
2月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
295 1
|
2月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
176 4
|
3月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
5月前
|
算法 IDE 测试技术
python学习需要注意的事项
python学习需要注意的事项
277 57
|
5月前
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。
|
5月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
5月前
|
监控 数据安全/隐私保护 Python
微信自动抢红包免费版,2025微信抢红包神器,微信红包挂苹果版【python仅供学习】
这个模拟项目包含5个模块:核心监控逻辑、用户界面、配置管理、实用工具和主程序入口

推荐镜像

更多