Python 高级技巧:深入解析读取 Excel 文件的多种方法

一、引言

 

在数据分析和处理中,经常需要从 Excel 文件中读取数据。Python 提供了多种库来实现这个功能,本文将深入探讨使用 ​​pandas​​、​​openpyxl​​ 和 ​​xlrd​​ 库读取 Excel 文件的高级技巧和代码实现。

 

二、使用 pandas 库读取 Excel 文件

 

​pandas​​ 是 Python 中强大的数据处理库,提供了方便的函数来读取 Excel 文件。

import pandas as pd

# 读取 Excel 文件
df = pd.read_excel('example.xlsx')

# 打印数据框的前几行
print(df.head())

三、使用 openpyxl 库读取 Excel 文件

 

​openpyxl​​ 是一个用于处理 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。

from openpyxl import load_workbook

# 加载工作簿
wb = load_workbook('example.xlsx')

# 获取工作表
sheet = wb.active

# 遍历工作表中的数据
for row in sheet.iter_rows():
    for cell in row:
        print(cell.value)

四、使用 xlrd 库读取 Excel 文件

 

​xlrd​​ 是一个用于读取 Excel 文件的 Python 库,但它不支持 xlsx 文件格式,只支持 xls 文件格式。

import xlrd

# 打开 Excel 文件
workbook = xlrd.open_workbook('example.xls')

# 获取工作表
sheet = workbook.sheet_by_index(0)

# 遍历工作表中的数据
for row_index in range(sheet.nrows):
    row_data = sheet.row_values(row_index)
    print(row_data)

五、处理复杂的 Excel 格式

 

在实际应用中,Excel 文件可能具有复杂的格式,如合并单元格、数据验证等。我们可以使用相应的库来处理这些情况。

# 使用 openpyxl 处理合并单元格
from openpyxl import load_workbook

wb = load_workbook('example.xlsx')
sheet = wb.active

merged_cells = sheet.merged_cells.ranges

for merged_cell in merged_cells:
    min_row, min_col, max_row, max_col = merged_cell.min_row, merged_cell.min_col, merged_cell.max_row, merged_cell.max_col
    top_left_cell_value = sheet.cell(row=min_row, column=min_col).value
    for row in range(min_row, max_row + 1):
        for col in range(min_col, max_col + 1):
            sheet.cell(row=row, column=col).value = top_left_cell_value

六、性能优化

 

当处理大型 Excel 文件时,性能可能成为一个问题。我们可以采取一些优化措施,如分块读取、只读取需要的列等。

# 使用 pandas 分块读取 Excel 文件
import pandas as pd

chunk_size = 1000  # 每次读取的行数

reader = pd.read_excel('large_file.xlsx', chunksize=chunk_size)

for chunk in reader:
    # 在这里处理每一块数据
    print(chunk)

 本文部分代码转自:https://www.wodianping.com/app/2024-10/40486.html

posted @   我点评开发者社区  阅读(575)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示