当前位置:   article > 正文

Python 操作 Word 详解(python-docx)_python python-docx

python python-docx

1 概述

1.1 第三方库:python-docx

> pip install python-docx
  • 1

2 新建文档

2.1 空白文档

import docx
from docx import document

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.保存文档,绝对路径 和 相对路径 均可
# doc.save(r'C:\Users\Administrator\Desktop\test.docx')
doc.save('test.docx')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

2.2 标题

import docx
from docx import document

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 标题
# 标题
doc.add_heading(text='Python 操作 Word 教程', level=0)

# 章节标题(Level = 0~9)
doc.add_heading(text='第一章:Python 基础', level=1)
doc.add_heading(text='1.1 Python 基础语法', level=2)

# 3.保存文档
doc.save('test.docx')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

效果图:
在这里插入图片描述

2.3 段落

import docx
from docx import document

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 文本段落
paragraph = doc.add_paragraph('这是第一个文本段落')
paragraph.insert_paragraph_before("在之前,添加段落")
doc.add_paragraph(text='这是第二个文本段落', style='List Bullet')

# 3.保存文档
doc.save('test.docx')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在这里插入图片描述

2.4 文本

import docx
from docx import document

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 文本(同 文本段落)
paragraph = doc.add_paragraph()
run = paragraph.add_run('这是一个文本')

# 3.保存文档
doc.save('test.docx')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2.5 字体

import docx
from docx import document
from docx.shared import Pt
from docx.shared import RGBColor

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 文本(同 文本段落)
paragraph = doc.add_paragraph()
run = paragraph.add_run('这是一个文本')

# 3.设置字体
font = run.font
font.name = '微软雅黑'  # 字体名称
font.size = Pt(12)  # 字体大小
font.color.rgb = RGBColor(255, 0, 0)  # 红色
font.bold = True  # 加粗

# 4.保存文档
doc.save('test.docx')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

2.6 图片

import docx
from docx import document
from docx.shared import Cm

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 图片,CM:厘米
doc.add_picture('1.png', width=Cm(10), height=Cm(5))

# 3.保存文档
doc.save('test.docx')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2.7 表格

import docx
from docx import document

# 1.新建 文档对象
doc = docx.Document()
# [可选] 代码提示。需增加下列代码
# print(type(doc))
assert isinstance(doc, document.Document)  # 格式:doc, doc 的类型

# 2.添加 表格
table = doc.add_table(rows=2, cols=3)

# 获取第一行第二列的单元格,并修改内容
cell = table.cell(0, 0)
cell.text = '我是 A1'

# 输出单元格数据
for row in table.rows:
    for cell in row.cells:
        print(cell.text)

# 3.保存文档
doc.save('test.docx')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

3 扩展

3.1 修改文档

import docx
from docx import document

# 1.创建 文档对象
doc = docx.Document('test.docx')
assert isinstance(doc, document.Document)

# 2.修改 文档(其它同理)
doc.paragraphs[0].text = '修改第一个段落'

# 3.保存 文档
doc.save('test.docx')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3.2 读取文档

import docx
from docx import document

# 1.创建 文档对象
doc = docx.Document('test.docx')
assert isinstance(doc, document.Document)

# 2.读取 文档
# 段落的文本
for p in doc.paragraphs:
    print(p.text)

# 3.保存 文档
doc.save('test.docx')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/70345
推荐阅读
相关标签
  

闽ICP备14008679号