Python高效遍历Excel数据:方法详解与性能优化57


Excel作为数据存储和处理的常用工具,经常需要将Excel数据导入到Python程序中进行分析和处理。而高效地遍历Excel数据是进行后续操作的关键。本文将详细介绍几种Python中常用的遍历Excel数据的方法,并分析其优缺点和性能差异,帮助你选择最适合自己需求的方案。 我们将涵盖使用openpyxl, pandas和xlrd这三个流行的Python库。

一、 使用openpyxl库遍历Excel数据

openpyxl是一个读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它能够直接访问单元格内容,并提供对工作表、单元格样式等属性的访问。 对于需要对Excel文件进行读写操作,并且需要精细控制单元格格式的情况,openpyxl是一个不错的选择。
from openpyxl import load_workbook
def traverse_excel_openpyxl(filepath):
"""
使用openpyxl遍历Excel数据。
Args:
filepath: Excel文件路径。
"""
try:
workbook = load_workbook(filepath, data_only=True) # data_only=True 读取公式计算后的结果
for sheet_name in :
sheet = workbook[sheet_name]
for row in sheet.iter_rows():
for cell in row:
print(f"单元格值: {}, 单元格坐标: {}")
except FileNotFoundError:
print(f"文件 {filepath} 不存在")
except Exception as e:
print(f"发生错误: {e}")
# 示例用法
filepath = "" # 请替换为你的Excel文件路径
traverse_excel_openpyxl(filepath)

这段代码首先加载Excel文件,然后循环遍历每个工作表,再循环遍历每一行和每一个单元格,打印单元格值和坐标。 data_only=True参数确保读取的是计算后的值,而不是公式本身。

二、 使用pandas库遍历Excel数据

pandas是一个强大的数据分析库,它提供read_excel函数可以直接将Excel数据读取到DataFrame中。DataFrame是一个类似于表格的数据结构,方便进行数据处理和分析。 pandas通常是处理Excel数据的首选,因为它效率高且功能强大。
import pandas as pd
def traverse_excel_pandas(filepath):
"""
使用pandas遍历Excel数据。
Args:
filepath: Excel文件路径。
"""
try:
df = pd.read_excel(filepath)
for index, row in ():
print(f"行号: {index}, 数据: {row.to_dict()}")
except FileNotFoundError:
print(f"文件 {filepath} 不存在")
except Exception as e:
print(f"发生错误: {e}")
# 示例用法
filepath = "" # 请替换为你的Excel文件路径
traverse_excel_pandas(filepath)

这段代码使用pd.read_excel读取Excel文件,然后使用iterrows()迭代DataFrame中的每一行,并打印行号和行数据。to_dict()方法将Series转换成字典,方便查看数据。

三、 使用xlrd库遍历Excel数据 (仅读取)

xlrd库专门用于读取Excel文件,不支持写入操作。它相对轻量级,适合只需要读取Excel数据的场景。 然而,它对于较大的Excel文件处理效率可能不如pandas。
import xlrd
def traverse_excel_xlrd(filepath):
"""
使用xlrd遍历Excel数据。
Args:
filepath: Excel文件路径。
"""
try:
workbook = xlrd.open_workbook(filepath)
for sheet_name in workbook.sheet_names():
sheet = workbook.sheet_by_name(sheet_name)
for row_index in range():
row = sheet.row_values(row_index)
print(f"行号: {row_index}, 数据: {row}")
except FileNotFoundError:
print(f"文件 {filepath} 不存在")
except Exception as e:
print(f"发生错误: {e}")
# 示例用法
filepath = "" # 请替换为你的Excel文件路径
traverse_excel_xlrd(filepath)

这段代码使用xlrd库读取Excel文件,循环遍历每个工作表和每一行,打印行号和行数据。

四、 性能比较与选择建议

对于大型Excel文件,pandas通常具有最佳的性能,因为它利用了向量化操作。openpyxl的性能取决于具体的访问方式,而xlrd的性能通常相对较低。 选择哪个库取决于你的需求:如果需要写入或精细控制格式,选择openpyxl;如果需要高效处理大量数据并进行数据分析,选择pandas;如果只需要读取数据且文件较小,xlrd也是一个不错的选择。

记住替换 `""` 为你实际的Excel文件路径。 在运行代码之前,确保你已经安装了必要的库:pip install openpyxl pandas xlrd

本文提供了三种常用的Python库来遍历Excel数据,并对它们的性能进行了比较。希望这篇文章能帮助你高效地处理Excel数据。

2025-05-24


上一篇:Python高效分隔字符串及数据:函数详解与应用

下一篇:Python高效读取与处理网格数据:方法、库与最佳实践