Excel 是 Microsoft 开发的一款电子表格软件,广泛用于数据分析、计算、可视化和数据存储。其核心功能包括:
数据存储:以行和列的形式组织数据,支持
.xlsx
(现代格式)和.xls
(旧格式)文件。公式与函数:内置数学、统计、文本处理等函数(如
SUM
,VLOOKUP
,IF
)。图表与可视化:生成柱状图、折线图、饼图等。
数据处理:支持排序、筛选、数据透视表等。
自动化:通过 VBA(Visual Basic for Applications)实现复杂操作自动化。
Python 读取 Excel 文件的常用方法
Python 通过第三方库处理 Excel 文件,主流库如下:
库名 | 功能 | 适用场景 |
---|---|---|
pandas | 读取/写入 Excel,支持数据清洗和分析 | 结构化数据处理 |
openpyxl | 读写 .xlsx 文件,支持公式和样式 |
需要操作 Excel 细节时 |
xlrd | 仅支持读取旧格式 .xls 文件 |
兼容旧版 Excel 文件 |
xlsxwriter | 仅支持写入 .xlsx 文件 |
生成复杂格式 Excel 文件 |
Python 读取 Excel 文件代码示例
1. 使用 pandas 读取 Excel
import pandas as pd
# 读取整个 Excel 文件
file_path = "data.xlsx"
df = pd.read_excel(file_path, engine="openpyxl") # 默认读取第一个工作表
# 指定读取某个工作表
df = pd.read_excel(file_path, sheet_name="Sheet1", engine="openpyxl")
# 读取所有工作表(返回字典格式)
all_sheets = pd.read_excel(file_path, sheet_name=None, engine="openpyxl")
for sheet_name, data in all_sheets.items():
print(f"工作表名: {sheet_name}")
print(data.head())
# 打印数据
print(df.head()) # 查看前5行
print(df.info()) # 查看列名、数据类型和非空值统计
2. 使用 openpyxl 直接读取
from openpyxl import load_workbook
# 加载 Excel 文件
wb = load_workbook("data.xlsx")
sheet = wb.active # 获取活动工作表
# 遍历所有行(从第一行开始)
for row in sheet.iter_rows(values_only=True):
print(row)
# 读取特定单元格的值
cell_value = sheet["A1"].value
print(f"A1 单元格的值: {cell_value}")
关键步骤说明
安装依赖库:
pip install pandas openpyxl xlrd xlsxwriter
参数说明:
engine="openpyxl"
:强制使用openpyxl
引擎(默认可能尝试xlrd
)。sheet_name
:指定工作表名称或索引(如0
表示第一个工作表)。header=0
:默认第一行为列名,若数据无列名需设置header=None
。
常见问题:
依赖库缺失:确保安装
openpyxl
或xlrd
。文件路径错误:检查路径是否包含中文或特殊字符(建议使用英文路径)。
数据类型错误:Excel 中的日期或数字可能被自动转换,需手动处理:
df["日期列"] = pd.to_datetime(df["日期列"]) # 转换日期格式
Excel 文件写入
# 将 DataFrame 保存为 Excel 文件
df.to_excel("output.xlsx", index=False, engine="openpyxl")
总结
Excel 的本质:二进制文件(
.xls
)或基于 XML 的结构化文件(.xlsx
)。Python 读取要点:
优先使用
pandas
简化数据处理。旧格式
.xls
需用xlrd
,新格式.xlsx
需用openpyxl
。注意数据类型和缺失值(如
NaN
)的处理。