python读取Excel中的数据以及将输入写入Excel的方法

发布时间:2021-09-13 01:15:35 作者:chen
来源:亿速云 阅读:520
# 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模式

使用pandas读取

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]


写入Excel数据

使用openpyxl写入

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")

使用pandas写入

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']

样式设置(openpyxl)

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字,可根据需要补充具体案例细节或扩展特定库的深度用法。

推荐阅读:
  1. python读取excel文件的方法
  2. Python中读取Excel的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:python函数中有几种形参

下一篇:Python的Scrapy框架简单介绍和实例用法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》