前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Python学习的自我理解和想法(26)

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

作者头像
我是黑桃A
发布2024-11-19 20:12:15
发布2024-11-19 20:12:15
3300
代码可运行
举报
文章被收录于专栏:CSDN
运行总次数:0
代码可运行

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

今天是学Python的第26天,学的内容是运用Python在Word中插入列表和表格,以及读取docx文件。开学了,时间不多,写得不多,见谅。


1.导入插件

代码语言:javascript
代码运行次数:0
复制
from docx import Document

2.在Word中插入列表

(1).创建word文档对象

语法:docx.Document()

代码语言:javascript
代码运行次数:0
复制
document = docx.Document()

(2).添加无序列表

语法:document.add_paragraph(列表内容,列表样式)

在下面的代码中,我们使用style = 'List Bullet'来指定段落的样式为无序列表项。

代码语言:javascript
代码运行次数:0
复制
# 添加无序列表
document.add_paragraph('第一步:hello',style='List Bullet')
document.add_paragraph('第二步:world',style='List Bullet')

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

代码语言:javascript
代码运行次数:0
复制
items = ['Apple', 'Banana', 'Orange']
for item in items:
    document.add_paragraph(item, style='List Bullet')

(3).添加有序列表

语法:document.add_paragraph(列表内容,列表样式)

在下面的代码中,我们使用style = 'List Number'来指定段落的样式为无序列表项。

代码语言:javascript
代码运行次数:0
复制
document.add_paragraph('刘备',style='List Number')
document.add_paragraph('关羽',style='List Number')
document.add_paragraph('张飞',style='List Number')

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

代码语言:javascript
代码运行次数:0
复制
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()

代码语言:javascript
代码运行次数:0
复制
   document.save('new_document.docx')

(5).示例

代码语言:javascript
代码运行次数:0
复制
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).结果

3.在Word中插入表格

(1).创建word文档对象

语法:docx.Document()

代码语言:javascript
代码运行次数:0
复制
document = docx.Document()

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

代码语言:javascript
代码运行次数:0
复制
records = (
    ('亚瑟','战士英雄'),
    ('白起','坦克英雄'),
    ('赵云','刺客英雄'),
    ('女娲','法师英雄')
)

(3).添加表格

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

代码语言:javascript
代码运行次数:0
复制
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 = '类型'

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

代码语言:javascript
代码运行次数:0
复制
for row in table.rows:
    for cell in row.cells:
        cell.text = 'Cell content'

(4).为表格添加数据

代码语言:javascript
代码运行次数:0
复制
for name,type in records:
    row_cells = table.add_row().cells
    row_cells[0].text = name
    row_cells[1].text = type

(5).保存文档

语法:document.save()

代码语言:javascript
代码运行次数:0
复制
   document.save('new_document.docx')

(6).示例

代码语言:javascript
代码运行次数:0
复制
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).结果

(8).其他表格样式

python-docx提供了一些内置的表格样式,可以通过属性table.style来设置.

在下面的代码中,我们将表格的样式设置为 “Table Grid”,这是一种带有边框和网格线的样式,还可以根据需要选择其他的表格样式,比如 “Light Shading”、“Light Shading Accent 1” 等。

代码语言:javascript
代码运行次数:0
复制
table.style = 'Table Grid'

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

代码语言:javascript
代码运行次数:0
复制
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).合并单元格

代码语言:javascript
代码运行次数:0
复制
table.cell(0, 0).merge(table.cell(0, 1))

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

代码语言:javascript
代码运行次数:0
复制
table.cell(0, 0).text = 'Merged cell'

4.读取docx文件

(1).创建word对象

代码语言:javascript
代码运行次数:0
复制
document = Document("XXX")

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

代码语言:javascript
代码运行次数:0
复制
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)

代码语言:javascript
代码运行次数:0
复制
for index,p in enumerate(document.paragraphs):
    print(index,p.text)

(4).读取表格

代码语言:javascript
代码运行次数:0
复制
for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text)

(5).示例

(6).结果

总结

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 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).结果
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档