随着数据分析的普及,处理Excel表格成了开发者的日常需求。今天,猫头虎为你整理了使用Python读取.xlsx
和.xls
文件的多种方法,无论是新手还是老鸟,都能轻松掌握!🚀
本教程全面覆盖 Python读取Excel表格文件 的方法,包括 .xlsx
和 .xls
格式,并针对不同需求推荐最佳工具。
pandas
读取Excel
.xlsx
和 .xls
,需安装 pandas
和 openpyxl
。openpyxl
处理.xlsx
.xlsx
格式设计。xlrd
处理.xls
.xls
文件。pyxlsb
处理.xlsb
.xlsb
)设计。无论你是数据分析新手还是资深开发者,这篇指南将助你快速上手并处理各种Excel文件格式!
pandas
读取Excelpandas
是处理数据的神器,提供了简单易用的接口来读取Excel表格。
pip install pandas openpyxl
pandas
是主库openpyxl
用于处理 .xlsx
import pandas as pd
# 读取Excel文件
file_path = "example.xlsx"
data = pd.read_excel(file_path)
# 显示前5行
print(data.head())
注意: 如果需要处理.xls
格式,需安装xlrd
:
pip install xlrd
openpyxl
处理.xlsx
openpyxl
是专门为 .xlsx
格式设计的库,支持读取和写入。
pip install openpyxl
from openpyxl import load_workbook
# 打开Excel文件
file_path = "example.xlsx"
workbook = load_workbook(file_path)
# 获取所有Sheet名称
print(workbook.sheetnames)
# 读取Sheet数据
sheet = workbook.active
for row in sheet.iter_rows(values_only=True):
print(row)
小贴士: openpyxl
不支持 .xls
格式。
xlrd
处理.xls
对于.xls
格式,xlrd
是经典选择。
pip install xlrd
import xlrd
# 打开Excel文件
file_path = "example.xls"
workbook = xlrd.open_workbook(file_path)
# 获取第一个Sheet
sheet = workbook.sheet_by_index(0)
# 遍历Sheet中的行
for row_idx in range(sheet.nrows):
print(sheet.row_values(row_idx))
⚠️ 注意: xlrd
新版本(2.0.0及以上)不支持.xlsx
,需回退至1.2.0:
pip install xlrd==1.2.0
pyxlsb
处理.xlsb
如果需要处理Excel Binary Workbook (.xlsb)
格式,pyxlsb
是不二选择。
pip install pyxlsb
from pyxlsb import open_workbook
file_path = "example.xlsb"
with open_workbook(file_path) as workbook:
with workbook.get_sheet(1) as sheet:
for row in sheet.rows():
print([item.v for item in row])
Q1:如何读取带密码的Excel文件?
答: 使用msoffcrypto-tool
库解密:
pip install msoffcrypto-tool
import msoffcrypto
import io
# 解密文件
file = open("encrypted.xlsx", "rb")
decrypted = io.BytesIO()
office_file = msoffcrypto.OfficeFile(file)
office_file.load_key(password="your_password")
office_file.decrypt(decrypted)
# 使用pandas读取
import pandas as pd
data = pd.read_excel(decrypted)
print(data.head())
Q2:如何提高读取大文件的速度?
答: 尝试使用dask
库:
pip install dask
import dask.dataframe as dd
data = dd.read_excel("large_file.xlsx")
print(data.head())
方法 | 支持格式 | 依赖库 | 特点 |
---|---|---|---|
pandas | .xls/.xlsx | pandas, xlrd | 快速高效,适合大数据 |
openpyxl | .xlsx | openpyxl | 功能强大,支持写入 |
xlrd | .xls | xlrd | 经典工具,需注意版本限制 |
pyxlsb | .xlsb | pyxlsb | 支持二进制格式,适合特殊需求 |
通过以上方法,你已经掌握了使用Python读取Excel文件的各种技巧!从经典的pandas
到针对性强的openpyxl
和xlrd
,还有对特殊格式的支持,都能满足不同场景的需求。
🚀 未来趋势:Excel处理正向高效化、智能化发展,工具也会更加多样。你可以探索dask
等分布式库,进一步优化性能。