当前位置:首页>python>Python 读取 Excel 文件全指南:零基础入门到实战

Python 读取 Excel 文件全指南:零基础入门到实战

  • 2026-09-16 13:22:29
Python 读取 Excel 文件全指南:零基础入门到实战

在数据分析、自动化办公和日常工作中,Excel 是最常用的工具之一。然而,当面对成百上千个文件,或者需要进行复杂的数据清洗时,手动操作 Excel 既低效又容易出错。

Python 作为一门强大的编程语言,提供了多种处理 Excel 的方式。本教程将以最通俗易懂的方式,手把手教你如何使用 Python 读取 Excel 文件,并避开新手常犯的坑。


1. 为什么选择 Python 处理 Excel?

  • 自动化:可以一键处理成百上千个 Excel 文件,无需重复打开复制粘贴。
  • 高效性:对于数万行以上的数据,Python(尤其是 Pandas)的处理速度远超 Excel 软件本身。
  • 灵活性:可以轻松连接数据库、进行复杂的统计分析或生成可视化图表。

2. 准备工作 (Prerequisites)

在开始写代码之前,你需要确保环境已经准备就绪。

2.1 环境要求

  • 已安装 Python(建议版本 3.8 及以上)。
  • 已安装代码编辑器(推荐 VS Code, PyCharm 或 Jupyter Notebook)。

2.2 安装必要的库

Python 处理 Excel 主要依赖第三方库。我们将介绍两个最主流的库:

  1. Pandas: 数据分析的神器,读取速度快,适合批量处理数据。
  2. Openpyxl: 专门用于读写 .xlsx 文件,适合需要精细操作单元格(如修改格式、公式)的场景。

打开终端(Terminal)或命令提示符(CMD),运行以下命令进行安装:

ounter(linepip install pandas openpyxl

注意:即使你主要使用 Pandas,通常也需要安装 openpyxl,因为 Pandas 底层读取 .xlsx 文件时依赖它作为引擎。


3. 实战演示:如何读取 Excel 文件

假设我们有一个名为 sales_data.xlsx 的文件,内容如下:

日期
产品
销售额
利润
2023-01-01
苹果
1000
200
2023-01-02
香蕉
1500
300

方法一:使用 Pandas 读取(推荐用于数据分析)

这是最常用、最简洁的方法。Pandas 会将 Excel 数据读取为一个表格对象,称为 DataFrame。

基础读取

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineimport pandas as pd# 1. 读取 Excel 文件# 默认读取第一个工作表 (Sheet)df = pd.read_excel('sales_data.xlsx')# 2. 打印前几行数据查看print("--- 文件内容预览 ---")print(df.head())

进阶读取技巧

read_excel 函数非常强大,支持多种参数配置:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineimport pandas as pd# 指定读取名为 'Sheet1' 的工作表# usecols='A:C' 表示只读取 A 到 C 列# header=0 表示第一行是表头(默认值)df = pd.read_excel(    'sales_data.xlsx',     sheet_name='Sheet1',     usecols='A:C',     dtype={'销售额': float} # 强制指定某列的数据类型)print(df)

方法二:使用 Openpyxl 读取(推荐用于精细操作)

如果你不进行大规模数据计算,而是想逐个单元格读取数据(例如提取特定位置的配置信息),openpyxl 是更好的选择。

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(linefrom openpyxl import load_workbook# 1. 加载工作簿wb = load_workbook('sales_data.xlsx')# 2. 获取指定的工作表ws = wb['Sheet1']  # 或者使用 wb.active 获取当前激活的表# 3. 读取特定单元格的值 (例如读取 A2 单元格)cell_value = ws['A2'].valueprint(f"A2单元格的值是: {cell_value}")# 4. 遍历所有行print("--- 遍历输出 ---")for row in ws.iter_rows(min_row=1, max_row=3, values_only=True):    print(row)

4. 新手常犯的 5 个错误与解决方案

作为初学者,代码报错是常有的事。以下是读取 Excel 时最常见的 5 个“坑”及其解决方法。

🚫 错误 1:FileNotFoundError (找不到文件)

现象:报错 [Errno 2] No such file or directory: 'data.xlsx'原因:Python 找不到你的文件。通常是因为你只写了文件名,但文件不在代码运行的当前目录下。解决:

  • 方法 A:将 Excel 文件移动到与 Python 脚本完全相同的文件夹中。
  • 方法 B:使用绝对路径。
    • Windows 用户注意:路径中的反斜杠 \ 在 Python 中是转义字符,建议在字符串前加 r 或者使用正斜杠 /。
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line# 错误写法path = 'C:\Users\Name\Desktop\data.xlsx' # 正确写法 (推荐)path = r'C:\Users\Name\Desktop\data.xlsx' # 或者path = 'C:/Users/Name/Desktop/data.xlsx'

🚫 错误 2:ImportError: Missing optional dependency 'openpyxl'

现象:使用 Pandas 读取 .xlsx 文件时报错。原因:虽然安装了 Pandas,但没有安装解析 Excel 文件的引擎 openpyxl。解决:在终端运行 pip install openpyxl。

🚫 错误 3:PermissionError (权限错误)

现象:报错 Permission denied: 'sales_data.xlsx'原因:Excel 文件正在被另一个程序(通常是 Excel 软件本身)打开。Windows 系统会锁定打开的文件,禁止其他程序读取或写入。解决:关闭 Excel 软件,然后重新运行 Python 代码。

🚫 错误 4:读取到了 "Unnamed: 0" 列

现象:打印数据时,发现多了一列索引或者空列。原因:Excel 表格中存在隐藏的格式,或者表头上方有空行。解决:

  • 如果第一行不是表头,使用 header=None 或 header=1(指定第二行为表头)。
  • 如果不需要索引列,可以在输出时忽略,或者在读取时指定 index_col=0(将第一列作为索引)。

🚫 错误 5:数据变成了 NaN (Not a Number)

现象:Excel 里明明有数据,读取出来却是 NaN。原因:

  1. Excel 单元格里是公式(Pandas 默认读取公式结果,但有时需手动处理)。
  2. 合并单元格:Pandas 读取合并单元格时,只有左上角的单元格有值,其余会被填充为 NaN。解决:
  • 处理合并单元格通常比较麻烦,建议在 Excel 端先取消合并填充数据,或者使用 ffill() 函数在 Python 中向前填充数据。

5. 总结与建议

恭喜你!你已经掌握了 Python 读取 Excel 的核心方法。让我们快速回顾一下:

  1. 工具选择:
    • 做数据分析、统计、清洗 -> 首选 Pandas (pd.read_excel).
    • 读写单元格格式、操作特定位置 -> 首选 Openpyxl.
  2. 核心步骤:安装库 -> 导入库 -> 读取文件 -> 处理数据。
  3. 避坑指南:注意文件路径、确保文件未被占用、安装好依赖库。

下一步学习建议: 学会读取只是第一步。接下来,你可以尝试学习如何筛选数据(例如:只看销售额大于 1000 的记录)以及如何将处理后的结果保存回 Excel 文件 (df.to_excel)。


资源推荐:

  • Pandas 官方文档 (IO Tools)
  • Openpyxl 官方文档

希望这篇教程能帮助你开启 Python 办公自动化的大门!如果有任何问题,欢迎动手尝试解决,编程就是在不断的 Debug 中学会的。

最新文章

随机文章