python如何读取excel文件:主流方法实操对比
python如何读取excel文件,主流可落地的方法为xlrd、pandas、openpyxl三种,其中xlrd适配xls旧版表格、openpyxl适配xlsx新版表格、pandas兼顾读写与数据分析,三者均为Python办公场景常用库,新手优先选pandas,仅读取老旧表格选xlrd,精细编辑表格选openpyxl,所有方法均适配Windows、Mac系统,仅不支持加密、损坏或带宏的Excel文件。
python读取excel文件之xlrd库操作
xlrd是专门用于Excel数据读取的轻量级Python库,目前最新稳定版为xlrd2.0.1,该版本仅支持xls格式文件,完全放弃了xlsx格式适配,适合处理2003版及更早的老旧Excel表格。你需要先通过pipinstallxlrd完成安装,安装完成后,先导入库,再通过open_workbook打开本地Excel文件,利用sheet_by_index选择指定工作表,最后通过cell_value获取单元格数据、row_values获取整行数据。
该库的优势是占用内存极低、运行速度快,无需复杂配置,纯读取场景效率较高,缺点是功能单一,无法编辑、写入Excel内容,且格式适配范围狭窄。若强行用xlrd读取xlsx文件,会直接抛出格式不匹配的运行报错,无法获取任何数据。
python读取excel文件之openpyxl库操作
openpyxl是专为现代xlsx格式Excel文件设计的Python库,支持Office2007及以上版本生成的表格,兼顾读取、修改、写入、样式编辑等全功能,是精细化操作Excel的首选工具。安装命令为pipinstallopenpyxl,实操时通过load_workbook打开文件,设置data_only=True可读取单元格的实际计算数值,避免读取到公式代码,再通过工作表名称或序号选中目标表单,逐行逐单元格读取数据。
这个库可以保留表格原有格式、合并单元格、批注等细节数据,适配复杂格式Excel文件,短板是不支持xls老旧格式,处理超大体积Excel文件时,运行速度会出现一定幅度下降,内存占用高于xlrd。
python读取excel文件之pandas库操作
pandas是数据分析场景的最优选择,依托底层集成的xlrd、openpyxl内核,可自动适配xls、xlsx全格式Excel文件,无需手动切换库。安装需执行pipinstallpandas,读取xlsx文件会默认调用openpyxl内核,读取xls文件自动调用xlrd内核,核心读取语句为pd.read_excel(),一行代码即可读取整张工作表数据并自动转换为结构化DataFrame格式。
你可以通过sheet_name指定读取的工作表,传入数字代表工作表序号,传入文本代表工作表名称,通过usecols筛选指定列,通过skiprows跳过表头无效行,大幅简化数据预处理流程。该方法的局限性是会忽略Excel的单元格样式、批注、合并格式,仅保留纯数据内容。
| 读取库 | 适配格式 | 核心优势 | 适用场景 |
|---|---|---|---|
| xlrd | 仅xls | 轻量、读取速度快 | 老旧表格纯数据读取 |
| openpyxl | 仅xlsx | 保留格式、支持编辑 | 新版表格精细读写 |
| pandas | xls、xlsx | 代码简洁、结构化数据 | 批量数据分析、数据清洗 |
加密Excel文件无法通过以上三种常规方法读取。
日常批量读取、数据分析场景,pandas的综合实用性较强,能大幅减少代码编写量。
读取Excel文件时,文件路径必须填写完整绝对路径,路径中禁止包含中文、空格及特殊符号,否则大概率出现文件找不到的报错。相对路径仅适用于Python脚本与Excel文件存放在同一文件夹的场景,跨文件夹运行脚本会直接读取失败。
处理10万行以上的超大Excel数据集时,可在pandas读取语句中添加chunksize参数,设置单次读取行数,实现分块读取,能有效降低程序内存溢出的概率,保障脚本稳定运行。
