Python如何高效导入导出与处理Excel数据

Elena
Elena
发布时间:2026-10-11 | 3人浏览过
原创

本文详细介绍如何使用Python结合Pandas与Openpyxl库,完成Excel文件的读取、写入、数据清洗与格式化输出。涵盖环境配置、核心API参数说明、多表操作及自动化脚本编写,并提供实际运行代码与常见问题排查指南。

准备工作与核心依赖

第1步:安装Python依赖库

Python处理Excel主要依赖Pandas(数据分析与结构化管理)和Openpyxl(Excel文件格式读写支持)。在终端执行以下命令安装:

pip install pandas openpyxl

为避免依赖冲突,建议使用虚拟环境。若已使用Anaconda,可通过conda创建:

conda create --name excel_env python=3.9
conda activate excel_env

安装完成后,在代码中引入对应模块:

import pandas as pd
from openpyxl import load_workbook

数据入境:读取Excel并加载为DataFrame

第2步:指定工作表读取基础数据

使用pd.read_excel()可将Excel文件转换为Pandas的DataFrame对象。默认读取第一个工作表,也可通过sheets_name参数精确指定。

df = pd.read_excel('data.xlsx', sheet_name='Sheet1')

若需一次性获取所有工作表内容,省略sheets_name参数将返回字典,键为表名,值为对应DataFrame:

all_sheets = pd.read_excel('data.xlsx', sheet_name=None)

第3步:处理缺失值与非结构化数据

实际表格常包含表示空值的特殊字符。可通过na_values参数自定义识别标准:

df = pd.read_excel('data.xlsx', na_values=['NA', 'N/A', '-'])

对于包含公式或合并单元格的复杂文件,建议先用Openpyxl进行底层结构调整,或结合正则表达式清洗文本列。读取后务必检查数据结构:

print(df.head())
print(df.info())

数据出境:写入Excel与格式优化

第4步:导出数据到新工作簿

处理完成后,调用DataFrame的to_excel()方法即可保存。默认会保留行索引,通常需关闭索引输出:

df.to_excel('output.xlsx', index=False)

第5步:多工作表输出与样式定制

当需要将多个数据集分别写入不同Sheet时,应使用pd.ExcelWriter上下文管理器:

with pd.ExcelWriter('output.xlsx') as writer:
    df1.to_excel(writer, sheet_name='原始数据', index=False)
    df2.to_excel(writer, sheet_name='统计汇总', index=False)

如需调整单元格外观(如加粗标题、居中),可联动Openpyxl样式模块:

from openpyxl import Workbook
from openpyxl.styles import Font, Alignment

wb = Workbook()
ws = wb.active
ws.append(['产品名称', '销售数量', '销售额'])

for cell in ws[1]:
    cell.font = Font(bold=True)
    cell.alignment = Alignment(horizontal='center')

wb.save('styled_output.xlsx')

数据清洗与自动化处理

第6步:基础清洗与类型转换

删除重复记录是常见需求,使用drop_duplicates()可直接过滤:

df_cleaned = df.drop_duplicates()

数值型字符串需显式转换类型以参与计算:

df['销售额'] = df['销售额'].str.replace(',', '').astype(float)

第7步:封装自动化脚本

将读取、合并、清洗、输出步骤封装为函数,便于定时任务调度(如Windows计划任务或Linux cron):

import pandas as pd
from datetime import datetime

def process_excel():
    # 读取源文件
    df1 = pd.read_excel('source1.xlsx')
    df2 = pd.read_excel('source2.xlsx')
    # 合并与去重
    combined_df = pd.concat([df1, df2]).drop_duplicates()
    # 动态命名输出文件
    timestamp = datetime.now().strftime('%Y%m%d')
    output_file = f'report_{timestamp}.xlsx'
    with pd.ExcelWriter(output_file) as writer:
        combined_df.to_excel(writer, sheet_name='Data', index=False)

if __name__ == '__main__':
    process_excel()

常见问题排错

  • FileNotFoundError / ModuleNotFoundError:确认文件路径是否正确,或重新执行pip install pandas openpyxl。
  • ValueError: Sheet xxx not found:检查工作表名称大小写是否完全匹配,或通过sheet_name=None查看所有可用表名。
  • 类型转换报错:列内混杂非数字文本会导致astype(float)失败。需先使用pd.to_numeric(col, errors='coerce')强制转换异常值为NaN。

总结

掌握Pandas读写接口与Openpyxl样式控制,配合标准化清洗逻辑,即可构建稳定高效的表格数据处理流。以上就是Python高效导入导出与处理Excel数据的详细内容,更多关于Python办公自动化与数据分析的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表