Python使用openpyxl读写xlsx文件完整指南

白榆
白榆
发布时间:2026-10-11 | 2人浏览过
原创

本文详细介绍如何使用Python的openpyxl库对xlsx格式Excel文件进行读写操作。涵盖创建工作簿、写入单元格数据、批量生成表格、追加行以及读取现有文件内容等核心功能,提供完整代码示例与注意事项。

为什么选择 openpyxl

在处理现代 Excel 文件时,传统的 xlrd 和 xlwt 库仅支持旧的 .xls 格式,无法直接处理 .xlsx 文件。因此,推荐使用 openpyxl 库来操作 .xlsx 格式的数据。本文将演示基础的读写流程,不涉及复杂的格式设置或图表生成。

写入 Excel 文件

使用 openpyxl 写入数据主要分为创建工作簿、获取工作表、设置单元格值以及保存文件几个步骤。

1. 创建工作簿与获取工作表

首先导入 Workbook 类,实例化后会默认创建一个名为 Sheet 的活动工作表。

from openpyxl import Workbook
from openpyxl.utils import get_column_letter

# 在内存中创建一个workbook对象,而且会至少创建一个 worksheet
wb = Workbook()

# 获取当前活跃的worksheet,默认就是第一个worksheet
ws = wb.active

2. 写入单元格数据

可以通过 cell() 方法指定行号和列号来设置值。注意,openpyxl 的行和列编号从 1 开始,而非从 0 开始。

# 设置单元格的值,A1等于6(测试可知openpyxl的行和列编号从1开始计算),B1等于7
ws.cell(row=1, column=1).value = 6
ws.cell("B1").value = 7

3. 批量写入数据

利用循环可以高效地生成大量数据。以下示例从第 2 行开始,写入 9 行 10 列的数据,值为对应的列字母(A、B、C...)。

# 从第2行开始,写入9行10列数据,值为对应的列序号A、B、C、D...
for row in range(2,11):
    for col in range (1,11):
        ws.cell(row=row, column=col).value = get_column_letter(col)

4. 追加行数据

append() 方法可以直接在表格末尾追加一行数据,传入一个列表即可。

# 可以使用append插入一行数据
ws.append(["我","你","她"])

5. 保存文件

完成所有操作后,调用 save() 方法将工作簿保存到指定路径。

# 保存
wb.save(filename="/Users/budong/Desktop/a.xlsx")

读取 Excel 文件

读取现有 .xlsx 文件需要使用 load_workbook() 函数。以下是获取工作表名称、特定工作表以及遍历单元格数据的完整流程。

from openpyxl import load_workbook

# 打开一个workbook
wb = load_workbook(filename="/Users/budong/Desktop/a.xlsx")

# 获取当前活跃的worksheet,默认就是第一个worksheet
#ws = wb.active

# 当然也可以使用下面的方法

# 获取所有表格(worksheet)的名字
sheets = wb.get_sheet_names()
# 第一个表格的名称
sheet_first = sheets[0]
# 获取特定的worksheet
ws = wb.get_sheet_by_name(sheet_first)

# 获取表格所有行和列,两者都是可迭代的
rows = ws.rows
columns = ws.columns

# 迭代所有的行
for row in rows:
    line = [col.value for col in row]
    print(line)

# 通过坐标读取值
print(ws.cell('A1').value) # A表示列,1表示行
print(ws.cell(row=1, column=1).value)

注意事项

  • 行列索引: openpyxl 的行和列索引均从 1 开始,这与 Python 列表的 0 起始索引不同,编写代码时需注意转换。
  • 文件路径: 保存文件时请确保目标目录存在,否则可能会抛出 FileNotFoundError。
  • 数据格式: 本文仅演示基础读写,若需处理日期、货币或复杂格式,需额外配置单元格样式。

以上就是Python操作Excel之xlsx文件的详细内容,更多关于Python Excel读写操作与openpyxl库使用的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表