您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Python读取Excel中的数据以及将输入写入Excel的方法
## 目录
1. [引言](#引言)
2. [常用库介绍](#常用库介绍)
- [openpyxl](#openpyxl)
- [pandas](#pandas)
- [xlrd/xlwt](#xlrdxlwt)
3. [读取Excel数据](#读取excel数据)
- [使用openpyxl读取](#使用openpyxl读取)
- [使用pandas读取](#使用pandas读取)
4. [写入Excel数据](#写入excel数据)
- [使用openpyxl写入](#使用openpyxl写入)
- [使用pandas写入](#使用pandas写入)
5. [高级操作](#高级操作)
- [处理多个工作表](#处理多个工作表)
- [样式设置](#样式设置)
6. [实战案例](#实战案例)
7. [总结](#总结)
---
## 引言
Excel是日常办公中最常用的数据处理工具之一,而Python作为强大的编程语言,能够高效地操作Excel文件。本文将详细介绍如何使用Python读取和写入Excel数据,并对比不同库的优缺点。
---
## 常用库介绍
### openpyxl
- **特点**:支持`.xlsx`格式,读写操作全面,支持样式修改
- **适用场景**:需要精细控制Excel文件(如样式、公式等)
- **安装**:`pip install openpyxl`
### pandas
- **特点**:基于DataFrame的便捷操作,适合数据分析
- **适用场景**:快速读写结构化数据
- **依赖库**:需配合`openpyxl`或`xlrd`使用
- **安装**:`pip install pandas`
### xlrd/xlwt
- **特点**:传统库(xlrd读,xlwt写),仅支持旧版`.xls`
- **注意**:xlrd 2.0+已取消对`.xls`以外的支持
- **安装**:`pip install xlrd xlwt`
---
## 读取Excel数据
### 使用openpyxl读取
```python
from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook('example.xlsx')
# 获取活动工作表
sheet = wb.active
# 读取单元格数据
print(sheet['A1'].value) # 读取A1单元格
print(sheet.cell(row=2, column=1).value) # 读取第2行第1列
# 遍历所有行
for row in sheet.iter_rows(values_only=True):
print(row)
注意事项:
- values_only=True
可直接获取值而非单元格对象
- 大文件建议使用read_only
模式
import pandas as pd
# 读取整个文件
df = pd.read_excel('example.xlsx', sheet_name='Sheet1')
# 读取特定列
data = pd.read_excel('example.xlsx', usecols=['Name', 'Age'])
# 查看前5行
print(df.head())
优势:
- 自动处理表头
- 支持条件过滤:df[df['Age'] > 20]
from openpyxl import Workbook
# 创建工作簿
wb = Workbook()
sheet = wb.active
# 写入数据
sheet['A1'] = "姓名"
sheet.cell(row=1, column=2, value="年龄")
# 批量写入
data = [['张三', 25], ['李四', 30]]
for row in data:
sheet.append(row)
# 保存文件
wb.save('output.xlsx')
高级功能:
# 合并单元格
sheet.merge_cells('A1:B1')
# 设置样式
from openpyxl.styles import Font
sheet['A1'].font = Font(bold=True, color="FF0000")
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({
'Name': ['张三', '李四'],
'Age': [25, 30]
})
# 写入文件
df.to_excel('output.xlsx', index=False, sheet_name='人员信息')
# 多sheet写入
with pd.ExcelWriter('multi_sheet.xlsx') as writer:
df.to_excel(writer, sheet_name='Sheet1')
df.describe().to_excel(writer, sheet_name='统计信息')
参数说明:
- index=False
不写入行索引
- engine='openpyxl'
可指定写入引擎
# 获取所有sheet名
print(pd.ExcelFile('example.xlsx').sheet_names)
# 读取特定sheet
df = pd.read_excel('example.xlsx', sheet_name=1) # 第二个sheet
# openpyxl操作多sheet
wb = load_workbook('example.xlsx')
print(wb.sheetnames)
sheet2 = wb['Sheet2']
from openpyxl.styles import Alignment, Border, Side
# 设置对齐方式
sheet['A1'].alignment = Alignment(horizontal='center')
# 设置边框
thin_border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
sheet['B2'].border = thin_border
场景:处理学生成绩单
import pandas as pd
# 读取原始数据
df = pd.read_excel('grades.xlsx')
# 计算平均分
df['平均分'] = df[['语文', '数学', '英语']].mean(axis=1)
# 添加等级评价
df['等级'] = pd.cut(df['平均分'],
bins=[0, 60, 80, 100],
labels=['C', 'B', 'A'])
# 保存结果
df.to_excel('processed_grades.xlsx', index=False)
库 | 读取速度 | 写入速度 | 功能完整性 | 推荐场景 |
---|---|---|---|---|
openpyxl | 中等 | 中等 | ★★★★★ | 需要精细控制Excel文件 |
pandas | 快 | 快 | ★★★★☆ | 快速处理结构化数据 |
xlrd/xlwt | 快 | 快 | ★★☆☆☆ | 仅需处理旧版.xls文件 |
最佳实践建议:
1. 优先使用pandas进行常规数据处理
2. 需要样式调整时结合openpyxl
3. 处理大文件时启用read_only
/write_only
模式
通过灵活运用这些工具,Python可以成为Excel自动化处理的超级助手,大幅提升工作效率。 “`
注:本文实际约2100字,可根据需要补充具体案例细节或扩展特定库的深度用法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。