当前位置:首页>python>Python开发从零开始-50.9-Office 文档处理

Python开发从零开始-50.9-Office 文档处理

  • 2026-10-11 06:39:14
Python开发从零开始-50.9-Office 文档处理

接上文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)

参数解释:

  • row: 整型,单元格的行号,从 1 开始;

  • column: 整型,单元格的列号,从 1 开始;

  • value: 可选参数,用于设置单元格的值,支持字符串、数字、布尔型、日期时间、None 和错误值(如#N/A, #VALUE!)等。如果不设置,则返回单元格的当前值。

使用 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)

参数解释:

  • ‌iterable‌:可迭代对象,包含要添加到工作表中的行数据,对象的每个元素对应一行中的一列。

    • 如果是列表、元组等,所有值按顺序添加,从第一列开始,例如:

      append(["Name", "Age", "City"])

    • 如果是一个字典,值被分配给由键(数字或字母)指示的列,例如:

      append({"Alice", 24, "New York"})

      或者

      append({1:"Alice", 2:24, 3:"New York"})

  • ‌index‌:可选参数,用于指定将行插入到工作表的哪个位置。如果不指定,行将被添加到工作表的末尾。如果指定了索引,行将被插入到该索引的位置,这可能会影响到后续行的索引;

使用循环逐行添加数据的完整示例代码如下所示:

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)

参数解释:

  • 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 文件‌的相关知识。

最新文章

随机文章