本文目录导读:

我来为你介绍几个Python读取Excel表格内容的示例。
使用 pandas 读取Excel(推荐)
基础读取
import pandas as pd
# 读取整个工作表
df = pd.read_excel('data.xlsx')
print(df)
# 读取指定工作表
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
print(df)
# 读取多个工作表
dfs = pd.read_excel('data.xlsx', sheet_name=['Sheet1', 'Sheet2'])
print(dfs['Sheet1'])
print(dfs['Sheet2'])
高级读取选项
import pandas as pd
# 读取指定行列范围
df = pd.read_excel('data.xlsx',
sheet_name='Sheet1',
header=0, # 指定表头行索引
skiprows=2, # 跳过前2行
usecols='A:C', # 只读取A到C列
nrows=10) # 只读取前10行
# 处理缺失值和数据类型
df = pd.read_excel('data.xlsx',
dtype={'column1': str}, # 指定列数据类型
na_values=['NA', 'N/A', ''] # 指定缺失值表示
)
# 获取基本统计信息
print(df.info())
print(df.describe())
使用 openpyxl 读取(无需pandas)
from openpyxl import load_workbook
# 打开工作簿
wb = load_workbook('data.xlsx')
# 获取所有工作表名
print(wb.sheetnames)
# 选择工作表
ws = wb['Sheet1'] # 通过名称
# ws = wb.active # 通过激活状态
# 读取特定单元格
cell_value = ws['A1'].value
print(f"A1单元格的值:{cell_value}")
# 读取某一行
row_data = []
for cell in ws[1]: # 第1行
row_data.append(cell.value)
print(f"第1行数据:{row_data}")
# 遍历所有行和列
for row in ws.iter_rows(min_row=1, max_row=ws.max_row, max_col=ws.max_column):
for cell in row:
print(f"{cell.coordinate}: {cell.value}")
实际应用示例
案例1:读取表格并处理数据
import pandas as pd
# 假设有一个员工信息表格
df = pd.read_excel('employee.xlsx')
# 数据筛选
senior_employees = df[df['年龄'] > 40]
print("40岁以上员工:")
print(senior_employees)
# 计算统计数据
average_salary = df['工资'].mean()
print(f"平均工资:{average_salary:.2f}")
# 分组统计
dept_count = df.groupby('部门').size()
print("各部门人数:")
print(dept_count)
案例2:读取多个工作表并合并
import pandas as pd
# 读取所有工作表
all_sheets = pd.read_excel('sales_data.xlsx', sheet_name=None)
# 合并所有工作表
combined_data = pd.DataFrame()
for sheet_name, df in all_sheets.items():
df['来源工作表'] = sheet_name # 添加标识列
combined_data = pd.concat([combined_data, df], ignore_index=True)
print(combined_data)
安装必要的库
# 安装pandas pip install pandas # 安装openpyxl(通常pandas会自动安装) pip install openpyxl # 或者安装完整的数据科学环境 pip install pandas openpyxl xlrd
错误处理示例
import pandas as pd
def read_excel_safe(filename):
try:
df = pd.read_excel(filename)
print("成功读取文件")
return df
except FileNotFoundError:
print(f"错误:文件 '{filename}' 不存在")
except Exception as e:
print(f"读取文件时出错:{e}")
return None
# 使用安全读取函数
data = read_excel_safe('data.xlsx')
if data is not None:
print(data.head())
推荐选择
- pandas:处理大规模数据、数据分析时首选
- openpyxl:需要处理Excel格式细节(如样式、图表等)
- xlrd:仅支持旧版Excel(.xls)
需要根据你的具体需求选择合适的库,如果只是读取数据进行分析,pandas是最便捷的选择。