1. 概述
Word 是一个十分常用的文字处理工具,通常我们都是手动来操作它,本节我们来看一下如何通过 Python 来操作。
Python 提供了 python-docx 库,该库就是为 Word 文档量身定制的,安装使用 pip install python-docx 命令即可。
2. 写入
首先,我们使用 Python 来创建一个 Word 文档并向其中写入一些内容。
2.1 标题
我们先来创建 Word 文档并向其中添加标题,完整实现代码如下所示:
from docx import Document
# 创建文档
document = Document()
# 标题
document.add_heading(\'标题0\', 0)
document.add_heading(\'标题1\', 1)
document.add_heading(\'标题2\', 2)
# 保存
document.save(\'test.docx\')
看一下效果:
2.2 段落
我们接着向 Word 文档中添加段落内容,完整实现代码如下所示:
from docx import Document
# 创建文档
document = Document()
# 标题
document.add_heading(\'标题0\', 0)
document.add_heading(\'标题1\', 1)
# 段落
document.add_paragraph(\'你们平时Word文档用的多吗?\')
# 列表
document.add_paragraph(\'A:我们用的多\', style=\'List Bullet\')
document.add_paragraph(\'B:我们用的少\', style=\'List Bullet\')
document.add_paragraph(\'C:我们用的不多不少\', style=\'List Bullet\')
document.add_heading(\'标题2\', 2)
# 段落
document.add_paragraph(\'我平时基本都是手动操作Word文档,现在打算利用Python来操作它,\'
\'你们平时是手动操作Word文档?如果是的话,一起来了解下如何通过\'
\'Python来操作吧!\')
# 保存
document.save(\'test.docx\')
看一下效果:
2.3 表格
我们接着向文档中插入表格,完整实现代码如下所示:
from docx import Document
# 创建文档
document = Document()
# 标题
document.add_heading(\'标题0\', 0)
document.add_heading(\'标题1\', 1)
# 段落
document.add_paragraph(\'你们平时Word文档用的多吗?\')
# 列表
document.add_paragraph(\'A:我们用的多\', style=\'List Bullet\')
document.add_paragraph(\'B:我们用的少\', style=\'List Bullet\')
document.add_paragraph(\'C:我们用的不多不少\', style=\'List Bullet\')
document.add_heading(\'标题2\', 2)
# 段落
document.add_paragraph(\'我平时基本都是手动操作Word文档,现在打算利用Python来操作它,\'
\'你们平时是手动操作Word文档?如果是的话,一起来了解下如何通过\'
\'Python来操作吧!\')
# 表格
table = document.add_table(rows=3, cols=2, style=\'Table Grid\')
# 表头
hc = table.rows[0].cells
hc[0].text = \'姓名\'
hc[1].text = \'年龄\'
# 表体
bc1 = table.rows[1].cells
bc1[0].text = \'张三\'
bc1[1].text = \'22\'
bc2 = table.rows[2].cells
bc2[0].text = \'李四\'
bc2[1].text = \'33\'
# 保存
document.save(\'test.docx\')
看一下效果:
2.4 图片
我们接着向文档中插入图片,完整实现代码如下所示:
from docx import Document
from docx.shared import Inches
# 创建文档
document = Document()
# 标题
document.add_heading(\'标题0\', 0)
document.add_heading(\'标题1\', 1)
# 段落
document.add_paragraph(\'你们平时Word文档用的多吗?\')
# 列表
document.add_paragraph(\'A:我们用的多\', style=\'List Bullet\')
document.add_paragraph(\'B:我们用的少\', style=\'List Bullet\')
document.add_paragraph(\'C:我们用的不多不少\', style=\'List Bullet\')
document.add_heading(\'标题2\', 2)
# 段落
document.add_paragraph(\'我平时基本都是手动操作Word文档,现在打算利用Python来操作它,\'
\'你们平时是手动操作Word文档?如果是的话,一起来了解下如何通过\'
\'Python来操作吧!\')
# 表格
table = document.add_table(rows=3, cols=2, style=\'Table Grid\')
# 表头
hc = table.rows[0].cells
hc[0].text = \'姓名\'
hc[1].text = \'年龄\'
# 表体
bc1 = table.rows[1].cells
bc1[0].text = \'张三\'
bc1[1].text = \'22\'
bc2 = table.rows[2].cells
bc2[0].text = \'李四\'
bc2[1].text = \'33\'
# 分页
# document.add_page_break()
# 图片
document.add_picture(\'pic.jpg\', width=Inches(1))
# 保存
document.save(\'test.docx\')
看一下效果:
2.5 样式 郑州人流手术多少钱 http://mobile.chnk120.com/
我们再设置一下基本样式,比如:标题居中、字体加粗、首行缩进等,完整实现代码如下所示:
from docx import Document
from docx.shared import Inches
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Cm, Pt
# 创建文档
document = Document()
style = document.styles[\'Normal\']
# 标题
t0 = document.add_heading(\'标题0\', 0)
# 居中
t0.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
document.add_heading(\'标题1\', 1)
# 首行缩进两个字符
paragraph_format = style.paragraph_format
paragraph_format.first_line_indent = Cm(0.74)
# 段落
p1 = document.add_paragraph(\'你们平时\')
# 字体加粗
p1.add_run(\'Word文档\').bold = True
# 斜体
p1.add_run(\'用的多吗?\').italic = True
# 列表
document.add_paragraph(\'A:我们用的多\', style=\'List Bullet\')
document.add_paragraph(\'B:我们用的少\', style=\'List Bullet\')
document.add_paragraph(\'C:我们用的不多不少\', style=\'List Bullet\')
document.add_heading(\'标题2\', 2)
# 段落
p2 = document.add_paragraph(\'我平时基本都是手动操作Word文档,现在打算利用Python来操作它,\'
\'你们平时是手动操作Word文档?如果是的话,\')
run = p2.add_run(\'一起来了解下如何通过Python来操作吧!\')
# 设置字体大小
run.font.size = Pt(12)
# 表格
table = document.add_table(rows=3, cols=2, style=\'Table Grid\')
# 表头
hc = table.rows[0].cells
hc[0].text = \'姓名\'
hc[1].text = \'年龄\'
# 表体
bc1 = table.rows[1].cells
bc1[0].text = \'张三\'
bc1[1].text = \'22\'
bc2 = table.rows[2].cells
bc2[0].text = \'李四\'
bc2[1].text = \'33\'
# 分页
# document.add_page_break()
# 图片
document.add_picture(\'pic.jpg\', width=Inches(1))
# 保存
document.save(\'test.docx\')
看一下效果:
3. 读取
我们再来读取一下之前 Word 文档中写入的内容,完整代码实现如下所示:
from docx import Document
# 打开文档
document = Document(\'test.docx\')
# 读取标题、段落、列表内容
ps = [ paragraph.text for paragraph in document.paragraphs]
for p in ps:
print(p)
# 读取表格内容
ts = [table for table in document.tables]
for t in ts:
for row in t.rows:
for cell in row.cells:
print(cell.text, end=\' \')
print()