Python 处理 Excel 完整指南
在 Python 生态中,处理 Excel 数据主要依赖于几个功能各异的核心库,根据你的需求(是进行数据分析还是格式美化),选择合适的工具至关重要。
核心工具库介绍
- Pandas: 数据处理之王,它将 Excel 数据视为 DataFrame(数据框),非常适合进行大规模数据的读取、清洗、过滤、统计、合并以及复杂的数学运算。
- Openpyxl: 精细化操作专家,如果你需要修改单元格的样式(颜色、字体、边框)、合并单元格、插入公式或操作现有的
.xlsx文件,它是首选。 - XlsxWriter: 高性能写入工具,它专注于创建新的 Excel 文件,支持极其丰富的图表类型和复杂的格式设置,但它无法读取
已有的 Excel 文件。
- xlrd / xlwt: 用于处理老旧的
.xls格式(目前已逐渐被上述库取代,建议优先使用.xlsx)。
场景实战
使用 Pandas 进行数据清洗与统计(最常用)
如果你关注的是(计算销售总额、筛选特定用户、合并两个表格),请使用 Pandas。
import pandas as pd
# 1. 读取 Excel 文件
df = pd.read_excel('sales_data.xlsx', sheet_name='Sheet1')
# 2. 数据处理:筛选销售额大于 1000 的行
high_sales = df[df['销售额'] > 1000]
# 3. 数据统计:按“地区”分组计算“销售额”的总和
region_summary = df.groupby('地区')['销售额'].sum().reset_index()
# 4. 保存处理后的结果到新的 Excel
region_summary.to_excel('summary_report.xlsx', index=False)
使用 Openpyxl 进行样式美化
如果你需要调整表格外观(把表头标红、设置单元格合并、添加边框),请使用 Openpyxl。
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill, Alignment
# 1. 加载现有工作簿
wb = load_workbook('summary_report.xlsx')
ws = wb.active
# 2. 设置表头样式
header_fill = PatternFill(start_color="4F81BD", end_color="4F81BD", fill_type="solid")
header_font = Font(color="FFFFFF", bold=True, size=12)
header_alignment = Alignment(horizontal="center")
for cell in ws[1]: # 遍历第一行(表头)
cell.fill = header_fill
cell.font = header_font
cell.alignment = header_alignment
# 3. 合并单元格示例
# ws.merge_cells('A1:C1')
# 4. 保存修改后的文件
wb.save('styled_report.xlsx')
总结与选择建议
为了提高开发效率,建议遵循以下决策逻辑:
- 如果你要处理的是“数据”(清洗、转换、计算、合并):
- 请直接使用 Pandas,它的速度最快,代码最简洁。
- 如果你要处理的是“文档”(改颜色、改字体、加边框、写公式):
- 请使用 Openpyxl。
- 如果你要生成极其复杂的报表(包含大量动态图表、高度定制化的格式):
- 请使用 XlsxWriter。
最佳实践组合:
在实际工作中,通常采用 “Pandas + Openpyxl” 的组合:先用 Pandas 完成繁重的数据计算工作并导出 Excel,然后再用 Openpyxl 打开该文件进行最后的样式美化,从而实现自动化报表的完美生成。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/491161.html



