在日常数据处理工作中,excel 是最常见的数据文件格式之一。无论是财务报表、销售统计还是实验数据,python 都能通过强大的库快速读写和处理 excel 文件。其中最常用的就是 openpyxl 和 pandas。
本文将带你了解这两个库的核心用法,并通过实战示例展示如何高效操作 excel 文件。
一、openpyxl:原生 excel 文件操作库
openpyxl 是一个专门用于读写 .xlsx 文件的纯 python 库。它支持单元格读写、样式设置、图表创建等高级功能,适合对 excel 文件结构进行精细控制的场景。
1. 安装 openpyxl
pip install openpyxl
2. 创建 excel 文件
from openpyxl import workbook
# 创建一个新的工作簿
wb = workbook()
ws = wb.active
# 写入数据
ws['a1'] = '姓名'
ws['b1'] = '成绩'
ws.append(['alice', 95])
ws.append(['bob', 88])
# 保存文件
wb.save('成绩表.xlsx')
运行后,你将得到一个包含学生成绩的 excel 文件。
3. 读取 excel 文件
from openpyxl import load_workbook
wb = load_workbook('成绩表.xlsx')
ws = wb.active
for row in ws.iter_rows(values_only=true):
print(row)
输出结果:
('姓名', '成绩')
('alice', 95)
('bob', 88)
4. 修改单元格内容
ws['b2'] = 98 # 修改 alice 的成绩
wb.save('成绩表_修改.xlsx')
5. 设置单元格样式(可选)
from openpyxl.styles import font, alignment
ws['a1'].font = font(bold=true, color="ff0000")
ws['a1'].alignment = alignment(horizontal='center')
wb.save('成绩表_格式.xlsx')
二、pandas:高效的数据分析利器
如果你更关注数据分析和批量处理,而不是 excel 的格式细节,那么 pandas 是更高效的选择。 pandas 可以轻松地读写 excel 文件并与 dataframe 无缝结合。
1. 安装 pandas
pip install pandas openpyxl
2. 从 excel 读取数据
import pandas as pd
df = pd.read_excel('成绩表.xlsx')
print(df)
输出:
姓名 成绩
0 alice 95
1 bob 88
3. 修改数据并写回 excel
df.loc[df['姓名'] == 'bob', '成绩'] = 90
df.to_excel('成绩表_更新.xlsx', index=false)
4. 多表格(多 sheet)操作
with pd.excelwriter('多表格.xlsx') as writer:
df.to_excel(writer, sheet_name='一班', index=false)
df.to_excel(writer, sheet_name='二班', index=false)
5. 从多个 excel 文件合并数据
import glob
files = glob.glob("data/*.xlsx")
all_data = pd.concat((pd.read_excel(f) for f in files))
all_data.to_excel('合并结果.xlsx', index=false)
三、openpyxl 与 pandas 的比较
| 特性 | openpyxl | pandas |
|---|---|---|
| 文件类型 | .xlsx | .xls, .xlsx, .csv |
| 操作粒度 | 单元格级别 | 表格/数据级别 |
| 适合场景 | 精细化格式控制、表格样式、美化 | 批量处理、分析计算、数据转换 |
| 是否支持样式 | ✅ 是 | ❌ 否(仅限数据) |
结论:
- 如果你需要精细控制 excel 外观(如模板、美化),推荐 openpyxl。
- 如果你主要关注数据计算和处理,推荐 pandas。
四、实战案例:销售数据汇总
假设你有多个销售 excel 文件(如每月销售数据),需要快速汇总并输出总销售额。
import pandas as pd
import glob
# 合并所有销售文件
files = glob.glob("sales/*.xlsx")
df = pd.concat([pd.read_excel(f) for f in files])
# 汇总计算
summary = df.groupby('销售员')['销售额'].sum().reset_index()
# 导出结果
summary.to_excel('销售汇总.xlsx', index=false)
print("汇总完成!")
这段代码可以帮你自动读取所有销售文件,统计每位销售员的总销售额,并生成一个新的汇总文件。
五、总结
通过本文的学习,你应该掌握了以下内容:
- 使用 openpyxl 创建、修改和美化 excel 文件。
- 使用 pandas 快速读写、分析和汇总 excel 数据。
- 理解两者的差异与适用场景。
- 掌握一个实战级的数据汇总案例。
无论你是做数据分析、办公自动化,还是构建数据驱动应用,excel 操作都是 python 工具箱中不可或缺的一环。 下一步,你可以继续学习如何用 pandas + matplotlib 实现数据可视化,为数据报告添加图形洞察。
到此这篇关于python操作excel的实用工具与库openpyxl/pandas的详细指南的文章就介绍到这了,更多相关python操作excel库内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论