Python案例怎么读取Excel表格?

wen python案例 11

本文目录导读:

Python案例怎么读取Excel表格?

  1. 使用 pandas 库(最常用)
  2. 使用 openpyxl 库(直接操作)
  3. 使用 xlrd 库(只读)
  4. 实际案例
  5. 处理多个Sheet
  6. 常见问题解决
  7. 选择建议

我来介绍几种Python读取Excel表格的常用方法:

使用 pandas 库(最常用)

安装

pip install pandas openpyxl

读取Excel文件

import pandas as pd
# 读取整个工作表
df = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 读取所有工作表
# df = pd.read_excel('data.xlsx', sheet_name=None)
# 查看数据
print(df.head())  # 前5行
print(df.info())  # 数据信息
# 读取指定列
df = pd.read_excel('data.xlsx', usecols=['姓名', '年龄'])

使用 openpyxl 库(直接操作)

from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook('data.xlsx')
# 获取工作表
ws = wb['Sheet1']  # 按名称获取
# ws = wb.active  # 获取当前活动工作表
# 读取所有数据
for row in ws.iter_rows(values_only=True):
    print(row)
# 读取指定单元格
cell_value = ws['A1'].value  # 读取A1单元格
cell_value = ws.cell(row=1, column=1).value  # 另一种方式
# 读取指定范围
for row in ws.iter_rows(min_row=1, max_row=5, min_col=1, max_col=3, values_only=True):
    print(row)
# 转换为列表
data = []
for row in ws.iter_rows(values_only=True):
    data.append(list(row))
print(data)

使用 xlrd 库(只读)

import xlrd
# 打开Excel文件
workbook = xlrd.open_workbook('data.xlsx')
# 获取所有工作表
sheet_names = workbook.sheet_names()
print(sheet_names)
# 获取指定工作表
sheet = workbook.sheet_by_name('Sheet1')
# sheet = workbook.sheet_by_index(0)  # 按索引
# 读取数据
for row in range(sheet.nrows):
    row_data = sheet.row_values(row)
    print(row_data)
# 读取特定单元格
cell_value = sheet.cell_value(0, 0)  # 行,列

实际案例

import pandas as pd
from datetime import datetime
def read_excel_data(file_path, sheet_name=0):
    """
    读取Excel文件并返回DataFrame
    """
    try:
        # 读取Excel文件
        df = pd.read_excel(file_path, sheet_name=sheet_name)
        # 数据清洗和处理
        df = df.dropna()  # 删除空行
        print(f"成功读取 {len(df)} 行数据")
        print(f"列名: {list(df.columns)}")
        return df
    except Exception as e:
        print(f"读取Excel文件出错: {e}")
        return None
# 使用示例
df = read_excel_data('员工信息.xlsx')
if df is not None:
    # 查看数据摘要
    print(df.describe())
    # 保存为CSV
    df.to_csv('output.csv', index=False, encoding='utf-8-sig')

处理多个Sheet

import pandas as pd
def read_all_sheets(file_path):
    """
    读取Excel文件的所有工作表
    """
    # 读取所有工作表
    excel_file = pd.ExcelFile(file_path)
    # 获取所有工作表名称
    sheet_names = excel_file.sheet_names
    # 创建字典存储每个工作表的数据
    all_data = {}
    for sheet_name in sheet_names:
        df = pd.read_excel(file_path, sheet_name=sheet_name)
        all_data[sheet_name] = df
        print(f"工作表 '{sheet_name}' 读取完成,共 {len(df)} 行")
    return all_data
# 使用示例
data_dict = read_all_sheets('data.xlsx')
# 访问特定工作表
df_sheet1 = data_dict['Sheet1']
print(df_sheet1.head())

常见问题解决

import pandas as pd
# 1. 处理编码问题
df = pd.read_excel('data.xlsx', encoding='utf-8')
# 2. 处理日期格式
df = pd.read_excel('data.xlsx', parse_dates=['日期列'])
# 3. 处理列类型
df = pd.read_excel('data.xlsx', dtype={'ID列': str})
# 4. 跳过指定行
df = pd.read_excel('data.xlsx', skiprows=2)  # 跳过前2行
# 5. 读取指定行数
df = pd.read_excel('data.xlsx', nrows=100)  # 只读取前100行
# 6. 处理表头
df = pd.read_excel('data.xlsx', header=None)  # 无表头

选择建议

  • pandas: 数据分析场景,功能强大
  • openpyxl: 需要写入或修改Excel
  • xlrd: 只读操作,兼容旧版Excel

最推荐使用pandas,因为它功能最全面,代码也最简洁。

抱歉,评论功能暂时关闭!