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的自我想法和对其的理解,有不对的地方请同志们多多包涵,谢谢观看!

相关文章
|
1月前
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
1月前
|
存储 搜索推荐 算法
Python学习的自我理解和想法(28)
本文记录了学习Python第28天的内容——冒泡排序。通过B站千锋教育课程学习,非原创代码。文章详细介绍了冒泡排序的起源、概念、工作原理及多种Python实现方式(普通版、进阶版1和进阶版2)。同时分析了其时间复杂度(最坏、最好、平均情况)与空间复杂度,并探讨了实际应用场景(如小规模数据排序、教学示例)及局限性(如效率低下、不适用于高实时性场景)。最后总结了冒泡排序的意义及其对初学者的重要性。
|
2月前
|
数据采集 数据挖掘 Python
Python学习的自我理解和想法(22)
本文记录了作者学习Python第22天的内容——正则表达式,基于B站千锋教育课程。文章简要介绍了正则表达式的概念、特点及使用场景(如爬虫、数据清洗等),并通过示例解析了`re.search()`、`re.match()`、拆分、替换和匹配中文等基本语法。正则表达式是文本处理的重要工具,尽管入门较难,但功能强大。作者表示后续会深入讲解其应用,并强调学好正则对爬虫学习的帮助。因时间有限,内容为入门概述,不足之处敬请谅解。
|
2月前
|
索引 Python
Python学习的自我理解和想法(24)
本文记录了学习Python操作Excel的第24天内容,基于B站千锋教育课程。主要介绍openpyxl插件的使用,包括安装、读取与写入Excel文件、插入图表等操作。具体内容涵盖加载工作簿、获取单元格数据、创建和保存工作表,以及通过图表展示数据。因开学时间有限,文章简要概述了各步骤代码实现,适合初学者参考学习。如有不足之处,欢迎指正!
|
1月前
|
Python
Python学习的自我理解和想法(25)
这是一篇关于Python操作Word文档(docx)的教程总结,基于B站千锋教育课程学习(非原创代码)。主要内容包括:1) docx库插件安装;2) 创建与编辑Word文档,如添加标题、段落、设置字体样式及保存;3) 向新或现有Word文档插入图片。通过简单示例展示了如何高效使用python-docx库完成文档操作。因开学时间有限,内容精简,后续将更新列表和表格相关内容。欢迎指正交流!
|
2月前
|
Python
Python学习的自我理解和想法(23)
本文记录了学习Python正则表达式的第23天心得,内容基于B站麦叔课程。文章分为三个部分:1) 正则表达式的七个境界,从固定字符串到内部约束逐步深入;2) 写正则表达式的套路,以座机号码为例解析模式设计;3) 正则表达式语法大全,涵盖字符类别、重复次数、组合模式、位置、分组、标记、特殊字符和替换等知识点。总结中表达了对知识的理解,并欢迎指正。
|
3月前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
1月前
|
数据采集 安全 BI
用Python编程基础提升工作效率
一、文件处理整明白了,少加两小时班 (敲暖气管子)领导让整理100个Excel表?手都干抽筋儿了?Python就跟铲雪车似的,哗哗给你整利索!
64 11
|
3月前
|
人工智能 Java 数据安全/隐私保护
[oeasy]python081_ai编程最佳实践_ai辅助编程_提出要求_解决问题
本文介绍了如何利用AI辅助编程解决实际问题,以猫屎咖啡的购买为例,逐步实现将购买斤数换算成人民币金额的功能。文章强调了与AI协作时的三个要点:1) 去除无关信息,聚焦目标;2) 将复杂任务拆解为小步骤,逐步完成;3) 巩固已有成果后再推进。最终代码实现了输入验证、单位转换和价格计算,并保留两位小数。总结指出,在AI时代,人类负责明确目标、拆分任务和确认结果,AI则负责生成代码、解释含义和提供优化建议,编程不会被取代,而是会更广泛地融入各领域。
115 28
|
3月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。

推荐镜像

更多