什么是 openpyxl?
openpyxl 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库,它功能强大,支持样式、图表、图片、公式等高级功能,是 Python 操作 Excel 文件最常用的库之一。

如何下载(安装)openpyxl
您需要使用 Python 的包管理工具 pip 来安装 openpyxl。
推荐方法:使用 pip 安装(最常用)
打开您的终端(在 Windows 上是命令提示符 cmd 或 PowerShell,在 macOS 或 Linux 上是 Terminal),然后输入以下命令:
pip install openpyxl
如果遇到权限问题(尤其是在 macOS 或 Linux 上),可以尝试使用 --user 标志,这会将包安装到用户目录下,而无需管理员权限:
pip install --user openpyxl
如果您的系统中有多个 Python 版本,确保您使用的是正确的 pip,如果您使用的是 Python 3,命令可能是:

pip3 install openpyxl
或者,为了确保使用的是特定 Python 环境的 pip(例如虚拟环境),可以:
python -m pip install openpyxl
验证安装
安装完成后,您可以通过在 Python 环境中导入该库来验证是否安装成功。
打开 Python 解释器(在终端输入 python 或 python3),然后运行:
import openpyxl # 查看安装的版本号 print(openpyxl.__version__)
如果程序没有报错,并打印出了版本号(1.2),说明 openpyxl 已经成功安装。

基本使用示例
安装完成后,您就可以开始使用 openpyxl 来操作 Excel 文件了,这里有几个最基本、最常用的示例。
示例 1:创建一个新的 Excel 文件并写入数据
# 1. 导入 openpyxl 库
import openpyxl
from openpyxl.styles import Font
# 2. 创建一个新的工作簿
wb = openpyxl.Workbook()
# 3. 获取当前活跃的工作表(默认创建时会创建一个名为 'Sheet' 的工作表)
ws = wb.active
# 4. 给工作表重命名= "产品销售表"
# 5. 写入数据到单元格
# 可以直接给单元格赋值
ws['A1'] = '产品名称'
ws['B1'] = '销售数量'
ws['C1'] = '单价'
ws['D1'] = '总价'
# 也可以使用行和列的索引(从1开始)
ws.cell(row=2, column=1, value='苹果')
ws.cell(row=2, column=2, value=50)
ws.cell(row=2, column=3, value=8.5)
# 6. 使用公式
ws['D2'] = '=B2*C2'
# 7. 设置单元格样式(将标题加粗)
bold_font = Font(bold=True)
ws['A1'].font = bold_font
ws['B1'].font = bold_font
ws['C1'].font = bold_font
ws['D1'].font = bold_font
# 8. 保存工作簿到文件
# 如果文件不存在,则会创建;如果存在,则会覆盖
wb.save('product_sales.xlsx')
print("文件 'product_sales.xlsx' 已成功创建!")
运行这段代码后,您会在当前目录下找到一个名为 product_sales.xlsx 的文件,内容如下:
| 产品名称 | 销售数量 | 单价 | 总价 |
|---|---|---|---|
| 苹果 | 50 | 5 | 0 |
示例 2:读取一个已存在的 Excel 文件
假设您已经有了上面创建的 product_sales.xlsx 文件,现在要读取它。
import openpyxl
# 1. 打开一个已存在的工作簿
# 如果文件路径不对,会报 FileNotFoundError
try:
wb = openpyxl.load_workbook('product_sales.xlsx')
print("文件 'product_sales.xlsx' 已成功加载!")
# 2. 获取指定名称的工作表
ws = wb['产品销售表']
# 3. 读取特定单元格的值
product_name = ws['A2'].value
quantity = ws['B2'].value
total_price = ws['D2'].value
print(f"读取到的数据:")
print(f"产品名称: {product_name}")
print(f"销售数量: {quantity}")
print(f"总价(通过公式计算得出): {total_price}")
# 4. 遍历整行或整列数据
print("\n遍历第一行的所有数据(标题行):")
for cell in ws[1]:
print(f"单元格 {cell.coordinate} 的值是: {cell.value}")
# 5. 遍历所有数据
print("\n遍历整个工作表的数据:")
for row in ws.iter_rows(values_only=True): # values_only=True 只获取值,不获取单元格对象
print(row)
except FileNotFoundError:
print("错误:找不到文件 'product_sales.xlsx',请确保文件在正确的路径下。")
except KeyError:
print("错误:工作簿中不存在名为 '产品销售表' 的工作表。")
常见问题与解决方案
Q1: 安装时出现 pip 不是内部或外部命令...
原因:pip 没有被添加到系统的环境变量 PATH 中。
解决:
- 确保您已经正确安装了 Python。
- 在网上搜索 "如何将 Python 添加到环境变量 PATH",根据您的操作系统(Windows, macOS, Linux)进行配置。
- 配置完成后,重新打开终端再尝试安装。
Q2: 安装时出现 Permission denied 权限被拒绝错误
原因:在 macOS, Linux 或 Windows 的某些管理员账户下,用户没有权限直接向系统 Python 环境写入文件。 解决:
- 使用
--user标志:pip install --user openpyxl - (不推荐)使用
sudo提升权限(仅适用于 macOS/Linux):sudo pip install openpyxl(请谨慎使用sudo)
Q3: 运行代码时出现 ModuleNotFoundError: No module named 'openpyxl'
原因:您在一个没有安装 openpyxl 的 Python 环境中运行代码。
解决:
- 检查环境:确保您安装
openpyxl的 Python 环境(您的虚拟环境)是您当前正在运行代码的环境。 - 重新安装:在正确的环境中重新运行安装命令。
- IDE/编辑器问题:如果您使用的是 VS Code, PyCharm 等编辑器,请确保编辑器使用的是正确的 Python 解释器(通常可以在设置中选择解释器)。
希望这份详细的指南能帮助您顺利下载和使用 openpyxl!
