openpyxl 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库,它非常强大且流行。

第一步:安装 openpyxl
在 Python 中,我们通常使用 pip(Python 的包安装程序)来安装第三方库。
打开终端/命令行
您需要打开一个命令行窗口:
- Windows: 打开 "命令提示符" (CMD) 或 "PowerShell"。
- macOS: 打开 "终端" (Terminal)。
- Linux: 打开 "终端" (Terminal)。
执行安装命令
在打开的终端中,输入以下命令并按回车键:
pip install openpyxl
可能会遇到的情况:

-
如果提示
pip不是内部或外部命令...: 这意味着您的系统无法直接识别pip命令,您可以尝试使用python -m pip来执行:python -m pip install openpyxl
或者,如果您使用的是 Python 3:
python3 -m pip install openpyxl
-
如果提示
Permission denied(权限被拒绝): 在某些系统(如 macOS 或 Linux)上,您可能需要管理员权限来安装全局包,可以使用sudo:sudo pip install openpyxl
或者更推荐的方式是使用虚拟环境,以避免污染系统 Python 环境。
(图片来源网络,侵删) -
如果提示
Could not find a version that satisfies the requirement...: 这可能意味着您的pip版本过旧,可以先尝试升级pip:pip install --upgrade pip
然后再重新执行安装命令。
第二步:验证安装
安装完成后,您可以快速验证一下 openpyxl 是否已经成功安装。
在终端中运行以下 Python 代码:
python -c "import openpyxl; print(openpyxl.__version__)"
或者进入 Python 交互式环境:
python
然后输入:
>>> import openpyxl >>> print(openpyxl.__version__)
如果命令行输出 openpyxl 的版本号(1.2),则说明安装成功。
第三步:基本使用示例
安装完成后,您就可以在您的 Python 脚本中使用它了,下面是一些最常见的操作示例。
示例 1:创建一个新的 Excel 文件并写入数据
from openpyxl import Workbook
# 1. 创建一个新的工作簿
wb = Workbook()
# 2. 获取活动工作表(默认创建的第一个工作表)
ws = wb.active
# 3. 给工作表命名= "销售数据"
# 4. 写入数据到单元格
# 可以直接赋值
ws['A1'] = "产品名称"
ws['B1'] = "销量"
ws['C1'] = "单价"
# 也可以使用行和列的数字索引 (1-based)
ws.cell(row=2, column=1, value="苹果")
ws.cell(row=2, column=2, value=50)
ws.cell(row=2, column=3, value=8.5)
ws.cell(row=3, column=1, value="香蕉")
ws.cell(row=3, column=2, value=30)
ws.cell(row=3, column=3, value=5.0)
# 5. 保存工作簿到文件
# 注意:如果文件已存在,它将被覆盖
filename = "sales_report.xlsx"
wb.save(filename)
print(f"文件 '{filename}' 已成功创建!")
运行此脚本后,您会在当前目录下找到一个名为 sales_report.xlsx 的文件。
示例 2:读取一个已存在的 Excel 文件
假设您有一个名为 sales_report.xlsx 的文件,我们可以读取它的内容。
from openpyxl import load_workbook
# 1. 加载一个已存在的工作簿
filename = "sales_report.xlsx"
try:
wb = load_workbook(filename)
print(f"成功加载文件: {filename}")
# 2. 获取指定名称的工作表
ws = wb["销售数据"]
print(f"正在读取工作表: {ws.title}")
# 3. 读取数据
# 读取单个单元格
product_name = ws['A2'].value
sales_volume = ws['B2'].value
print(f"第一行数据: 产品={product_name}, 销量={sales_volume}")
# 遍历所有行(从第二行开始,因为第一行是标题)
print("\n--- 所有数据 ---")
for row in ws.iter_rows(min_row=2, values_only=True):
# row 是一个元组,('苹果', 50, 8.5)
product, volume, price = row
print(f"产品: {product}, 销量: {volume}, 单价: {price}")
except FileNotFoundError:
print(f"错误: 文件 '{filename}' 未找到!")
except KeyError:
print(f"错误: 工作簿中不存在名为 '销售数据' 的工作表!")
重要提示:openpyxl 的兼容性
.xlsx格式:openpyxl主要用于处理基于 Office Open XML 格式的文件,也就是.xlsx,.xlsm,.xltx,.xltm,这是 Excel 2007 及以后版本的默认格式。.xls格式: 对于旧的 Excel 97-2003 格式(.xls),openpyxl不支持,您需要使用另一个库,xlrd(仅读)和xlwt(仅写)。
希望这份详细的指南能帮助您成功下载和使用 openpyxl!
