自动化办公-word篇

        本章介绍word自动化办公——docx库。

目录

导入库及文件

1.  增加段落

2.  保存

3.  新增图片

4.  新增表格

5.  获取所有表格

        (1)获取表格里的指定单元格内容

        (2)获取表格里的指定行

        (3)获取表格里的指定列

        (4)获取单元格里的段落

6.  获取所有段落

7.  获取单段内行内元素

8.  在表格中插入图片

9.  删除某段落


导入库及文件

from docx import Document
a = Document(r"C:\Users\流光、月影\Desktop\docx.docx")

1.  增加段落

        a.add_paragraph(text, style=None)

a.add_paragraph('新增的')

        如图,会在文档的最后新增一行。

2.  保存

        a.save(path_or_stream)

        保存文件后,可查看效果。参数内填的是需要保存的路径。

3.  新增图片

        a.add_picture(image_path_or_stream, width=None, height=None)

from docx.shared import Cm
a.add_picture(r"C:\Users\流光、月影\Desktop\pic.jpg",width=Cm(5),height=Cm(4))

        新增一张图片并设置大小,其中设置大小需要导入Cm库。

4.  新增表格

        a.add_table(rows, cols, style=None)
a.add_table(rows=5,cols=3)

        rows为行数,cols为列数。

5.  获取所有表格

        a.tables

        获取到表格后,可以通过 for函数将它们一一遍历,随后可以获取行、列、单元格、单元格内容等。这里就不一一遍历了,用第一个表作试验。

        (1)获取表格里的指定单元格内容

                table.cell(?,?).text

table = a.tables[0]
cell = table.cell(0,1).text
print(cell)

        这里的 table是文档中的第一个表格。在表格中取单元格只需 .cell(row,col)就可以。此案例中取第0行第1列。

        (2)获取表格里的指定行

                ① table.row_cells(row)

table = a.tables[0]
cell = table.row_cells(0)
print(cell)
print(cell[2].text)

        取第0行,返回一个可迭代对象,可迭代对象中每一个元素对应该行的每一个元素。可对其进行切片取出单个单元格,取第2个单元格(实际第三个)然后单元格.text即可取出单元格值。

               ② table.rows

table = a.tables[0]
rows = table.rows
print(rows)

        返回所有行,可以对其进行切片去取行。取到行后再取单元格,单元格 .text 就可。

table = a.tables[0]
for row in table.rows:
    for cell in row.cells:
        print(cell.text)

        这样就能把一整行输出。

        (3)获取表格里的指定列

                ① table.column_cells(col)

table = a.tables[0]
col = table.column_cells(1)
print(col)
print(col[1].text)

        取第1列,返回一个可迭代对象,可迭代对象中每一个元素对应该列的每一个元素。可对其进行切片取出单个单元格,取第2个单元格(实际第三个)然后单元格.text即可取出单元格值。

               ② table.columns

                同理。和 table.rows用法一样。

table = a.tables[0]
for col in table.columns:
    for cell in col.cells:
        print(cell.text)

        (4)获取单元格里的段落

cell = a.tables[0].cell(0,0)
par = cell.paragraphs[0].text
print(par)

                获取段落的代码是 a.paragraphs,对于表格也一样。表格里也可以由一段段的文字组成,表格里的段落也可以通过cell.paragraphs获得。

6.  获取所有段落

        paragraph.text

paragraph_11 = a.paragraphs[11]
print(paragraph_11.text)

        a.paragraphs为获取所有段落。可以对其进行切片,获取单段,然后采用 .text输出内容。

7.  获取单段内行内元素

        paragraph.runs

paragraph_11 = a.paragraphs[11]
for run in paragraph_11.runs:
    print(run.text)
    print('-'*70)

        这个功能似乎有点毛病,因为它拆分成的run里,都已经不成句了,有待改善发展。此功能多,可以获取内容text、字体font、颜色color、字号size,把代码中的 .text换一换就行。

8.  在表格中插入图片

        paragraph.add_run()

cell = a.tables[0].cell(0,1).paragraphs[0].add_run()
cell.add_picture(r"C:\Users\流光、月影\Desktop\电池充电速度.jpg",width=Cm(5),height=Cm(5))

a.save(r"C:\Users\流光、月影\Desktop\test.docx")

        在第一个表格的第(0,1)单元格里的第一段落后插入一个元素块——图片。图片占据到了第四行是由于图片尺寸太大,把图片缩小后可看到它仅存在于(时间)这个单元格里的。

9.  删除某段落

        paragraph.clear()

        可见该段及该段的前后段如上,现删除该段后保存文件后查看:

par = a.paragraphs[32]
par.clear()

        可见该段已经被删除。但是换行符依旧存在。

猜你喜欢

转载自blog.csdn.net/m0_71559726/article/details/130294716