接上文Python开发从零开始-50.1-Office 文档处理,本文小编与大家分享 Python 处理 Office 文档的相关知识。
(四)python-docx 库的基本使用
1、创建和保存 Word 文档(.docx)
可以通过 docx.Document 对象的无参构造方法创建一个新的文档,使用 docx.Document 对象的 save() 方法来保存文档。创建和保存 Word 文档的代码示例如下所示:
from docx import Document# 创建一个新的文档doc = Document()# 保存文档doc.save('example.docx')
2、打开已有 Word 文档
可以使用 docx.Document 对象带文件名参数的构造方法打开已有 Word 文档。打开已有 Word 文档的代码示例如下所示:
from docx import Document# 打开一个已有文档doc = Document('example.docx')
3、打开 Word 文档并添加内容
(1)添加标题
docx.Document 对象的 add_heading() 方法用于在文档末尾添加标题。添加标题的示例代码如下所示:
# 添加标题heading = doc.add_heading('这是一个标题', 0)
(2)添加段落
docx.Document 对象的 add_paragraph() 方法用于在文档末尾添加文本段落。添加段落的示例代码如下所示:
# 添加段落para1 = doc.add_paragraph('这是文档的第一个段落。')
(3)在段落中添加运行(Run)
docx.text.paragraph.Paragraph 对象的 add_run() 方法用于在该段落末尾添加 “运行”。“运行” 指的是段落中从开始到结束的一段连续的文本,这段文本具有相同的样式(例如字体、大小、颜色等)。添加段落运行的示例代码如下所示:
# 在 para1 段落中添加一个运行(Run)run = para1.add_run("这是新添加的运行(Run)")
(4)添加图片
docx.Document 对象的 add_picture() 方法用于在文档末尾添加图片,该方法支持指定图片尺寸(宽度和高度),但是只接受 docx.shared 子模块中的单位对象(如 Inches、Cm、Pt 等),不能使用数值表示尺寸。添加图片的示例代码如下所示:
# 添加图片pic = doc.add_picture('dog.png', width=Inches(1.25))
docx.shared.Inches 对象的有参构造方法用于将英寸浮点数值转换为内部长度单位(Twips),专用于赋值给文档属性(如页宽、图片尺寸等)。
(5)添加表格
docx.Document 对象的 add_table() 方法用于在文档末尾添加表格。添加表格的示例代码如下所示:
# 添加表格table = doc.add_table(rows=2, cols=2)table.cell(0, 0).text = '行1列1'table.cell(0, 1).text = '行1列2'table.cell(1, 0).text = '行2列1'table.cell(1, 1).text = '行2列2'
(6)添加节
docx.Document 对象的 add_section() 方法用于在文档末尾添加新节。添加新节的示例代码如下所示:
# 添加新节section = doc.add_section()
打开 Word 文档并添加内容的完整代码如下所示:
from docx import Documentfrom docx.shared import Inchesimport os# 为方便学习和调试,使用文件是否存在的判断逻辑filename = 'example.docx'if os.path.exists(filename):# 打开一个已存在的文档doc = Document(filename)else:# 创建一个新的文档doc = Document()# 添加标题heading = doc.add_heading("这是一个标题", 0)# 添加段落para1 = doc.add_paragraph("这是第一个段落。")# 在 para1 段落中添加一个运行(Run)run = para1.add_run("这是新添加的运行(Run)")# 添加图片pic = doc.add_picture('dog.png', width=Inches(1.25))# 添加表格table = doc.add_table(rows=2, cols=2)table.cell(0, 0).text = '行1列1'table.cell(0, 1).text = '行1列2'table.cell(1, 0).text = '行2列1'table.cell(1, 1).text = '行2列2'# 添加新节section = doc.add_section()# 保存文档doc.save(filename)
受文章篇幅所限,下文将继续介绍 Python 处理 Office 文件的相关知识。