接上文Python开发从零开始-50.8-Office 文档处理,本文小编与大家分享 Python 处理 Office 文档的相关知识。
4、在 Excel 文档中添加数据
在 Excel 文档中添加数据主要是通过 Cell 对象来实现,它代表工作表中的一个单元格,可以通过它来获取或设置单元格的值、样式等。
(1)在指定单元格添加数据
1)获取工作表中指定单元格
Excel 文档中列使用字母(A,B,C...)标识,行使用数字(1,2,3...)标识,它们交叉形成单元格。单元格使用列标(字母)+ 行号(数字)组成的唯一地址进行标识,例如 A1 代表第一列第一行组成的单元格。可以使用单元格标识获取指定单元格。
wb = Workbook()ws = wb.active# 使用单元格标识获取指定单元格对象cell = ws["A1"]
也可以使用工作表对象的 cell() 方法获取指定单元格。该方法原型如下:
cell(row, column, value=None) 参数解释:
|
使用 cell() 方法的代码示例如下所示:
# 使用工作表对象的 cell() 获取指定单元格对象cell = ws.cell(1,1)
2)在指定单元格添加数据
获取指定单元格后,可以通过单元格对象的 value 属性来添加或修改数据。
# 获取指定单元格,并添加或修改数据ws["A1"].value = "Name"ws["B1"].value = "Age"ws["C1"].value = "City"
(2)批量在工作表中添加数据
1)使用循环逐行添加数据
可以使用工作表对象的 append() 方法向工作表添加一行数据,它接受一个可迭代对象(如列表、字典等)参数,其中的每个元素对应一行中的一列。append() 方法的原型为:
append(iterable, index=None) 参数解释:
|
使用循环逐行添加数据的完整示例代码如下所示:
from openpyxl import Workbookwb = Workbook()ws = wb.active# 插入表格的数据data = [["Name", "Age", "City"], # 表头数据["Alice", 24, "New York"],["Bob", 27, "Los Angeles"],["Charlie", 30, "Chicago"]]# 使用 append() 方法逐行写入数据for row in data:ws.append(row)# 保存文档wb.save("example_5.xlsx")
代码运行后,生成的 example_5.xlsx 文档内容如下:

2)使用循环逐个单元格添加数据
由于逐个单元格添加数据涉及遍历列表和单元格,可以使用 Python 的 enumerate 内置函数简化循环代码。
enumerate 函数用于在遍历可迭代对象时同时获取索引和元素值,它是 Python 中替代手动计数器的内置工具,能显著简化代码并提升可读性。其函数原型为:
enumerate(iterable, start=0) 参数解释:
惰性求值也称为延迟求值或懒惰求值,是一种计算机编程中的概念,目的最小化计算机所需的工作量。它的核心思想是仅在需要时才进行计算,而不是在表达式被绑定到变量时立即求值。 |
使用循环逐个单元格添加数据的完整示例代码如下所示:
from openpyxl import Workbookwb = Workbook()ws = wb.active# 插入表格的数据data = [["Name", "Age", "City"], # 标头数据["Alice", 24, "New York"],["Bob", 27, "Los Angeles"],["Charlie", 30, "Chicago"]]# 从1开始计数,cell() 方法中的行号从 1 开始for row_idx, row_data in enumerate(data, start=1):# 从1开始计数,cell() 方法中的列号从 1 开始(列标为 A)for col_idx, value in enumerate(row_data, start=1):# 逐个单元格添加数据cell = ws.cell(row_idx, col_idx, value)# 保存文档wb.save("example_6.xlsx")
代码运行后,生成的 example_6.xlsx 文档内容如下:

受文章篇幅所限,下文将继续介绍 Python 处理 Office 文件的相关知识。