大家好呀,花姐又来给大家带来一篇干货满满的 Python 技术文章啦!今天我们要聊的主题是 Excel —— 不是你每天都在用的那个 Excel 哦,而是如何通过 Python 来自动化操作 Excel,节省我们每天重复的“低级劳动”,让我们有更多时间喝奶茶、追剧,嗯…我说的是工作啦!
一、Excel 基础,你需要知道的“表格世界”
大家可能都对 Excel 有一定的了解,但当我们开始用 Python 自动化操作时,需要掌握一些基本的概念,保证你的操作能够顺利进行。
-
Excel 简介
Excel,大家都知道,它是我们工作中不可或缺的“计算神器”。无论是财务报表、数据分析,还是简单的成绩表,Excel 都能派上用场。你是不是也和我一样,有过在 Excel 表格里加班的时光?那种“在 1000 行数据中找 bug”的心情,简直酸爽到不行。😂 -
Excel 文件结构
Excel 文件由三大基本元素构成:- 工作簿(Workbook):这就是你打开的整个文件,包含了多个工作表。
- 工作表(Worksheet):每个工作簿可以包含多个工作表,你可以理解为不同的“页面”。
- 单元格(Cell):表格中每个小格子,最基本的数据单位。
这些结构,掌握了,才能更好地与 Excel 打交道。
- 安装 openpyxl 模块
如果你已经准备好通过 Python 来操作 Excel,那么首先要安装 openpyxl 模块。这个库可以帮助我们读取、写入 Excel 文件。操作它就像和 Excel 亲密无间地“搭档”一样。
安装 openpyxl 的命令如下:
pip install openpyxl
如果安装成功,恭喜你,你已经可以开始操作 Excel 了!🎉
二、读取 Excel 文件 —— 让我们打开 Excel 文件,看看有什么“宝藏”
接下来,我们进入正题,怎么通过 Python 打开 Excel 文件并读取其中的内容呢?
- 打开工作簿
首先,我们需要打开一个 Excel 文件(也就是加载工作簿),这时你可以使用openpyxl.load_workbook()函数。来吧,我们直接代码上手!
import openpyxl
# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
- 获取工作表
工作簿里可以有多个工作表,你可以通过sheetnames属性来查看所有工作表的名字,或者使用active属性来获取当前激活的工作表。
# 获取所有工作表名称
print(workbook.sheetnames)
# 获取当前激活的工作表
sheet = workbook.active
- 读取单元格数据
现在,我们可以开始读取单元格的内容了。你可以通过单元格的位置来获取内容,比如A1、B2等,或者使用cell()方法。
# 读取 A1 单元格的内容
print(sheet['A1'].value)
# 通过行列索引读取单元格内容
print(sheet.cell(row=1, column=1).value)
- 获取行和列的数据
想要获取整行或整列的数据吗?没问题!rows和columns属性能帮你搞定。
# 获取第一行数据
for cell in sheet[1]:
print(cell.value)
# 获取第一列数据
for cell in sheet['A']:
print(cell.value)
- 列字母与数字的转换
如果你习惯了 Excel 的列字母(A、B、C……),但又想要根据列的数字序号来读取数据,openpyxl 提供了列字母与列序号数字互转的工具。
from openpyxl.utils import column_index_from_string, get_column_letter
# 列字母转列数字
print(column_index_from_string('A')) # 输出 1
# 列数字转列字母
print(get_column_letter(1)) # 输出 A
三、实战演练 —— 自动化处理 Excel 数据
到了实战环节!让我们通过一个具体例子,带你掌握如何利用 Python 自动化处理 Excel 数据。
假设我们手上有一个成绩表格,我们要做以下操作:
- 读取表格中的数据
- 找出最高分和最低分
- 将分析结果写入一个新的 Excel 文件
首先,来看看我们要操作的 example.xlsx 文件内容:
| 姓名 | 年龄 | 性别 | 成绩 |
|---|---|---|---|
| 小李 | 22 | 男 | 88 |
| 小周 | 21 | 女 | 92 |
| 小王 | 23 | 男 | 75 |
| 小赵 | 24 | 女 | 85 |
1. 读取数据并找出最高分和最低分
import openpyxl
# 加载 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
# 获取第一个工作表
sheet = workbook.active
# 初始化变量,存储最高分和最低分
max_score = -1
min_score = 101
max_name = ''
min_name = ''
# 遍历每一行数据,从第二行开始,因为第一行是表头
for row in sheet.iter_rows(min_row=2, values_only=True):
name, age, gender, score = row
# 找到最高分
if score > max_score:
max_score = score
max_name = name
# 找到最低分
if score < min_score:
min_score = score
min_name = name
print(f"最高分:{max_name},分数:{max_score}")
print(f"最低分:{min_name},分数:{min_score}")
输出结果:
最高分:小周,分数:92
最低分:小王,分数:75
2. 将分析结果写入新 Excel 文件
# 创建一个新的工作簿
new_workbook = openpyxl.Workbook()
new_sheet = new_workbook.active
# 写入表头
new_sheet.append(['分析项', '结果'])
# 写入最高分和最低分
new_sheet.append(['最高分', f"{max_name}:{max_score}"])
new_sheet.append(['最低分', f"{min_name}:{min_score}"])
# 保存新文件
new_file_path = '分析结果.xlsx'
new_workbook.save(new_file_path)
print(f"分析结果已保存到 {new_file_path}")
运行后,新的 Excel 文件 分析结果.xlsx 就生成了,包含了最高分和最低分的分析结果。
四、小结
通过这篇文章,你已经学会了如何用 Python 和 openpyxl 库轻松读取、处理和写入 Excel 数据。是不是觉得挺简单的?你可以尝试在工作中用 Python 来处理 Excel 文件,提高自己的效率,节省时间!🎉
你可能觉得学会这些技能并没有提高你日常处理Excel的工作效率,为了找出最高分和最低分写了一大堆代码,还没手动计算的快,那如果我告诉你有100个这样的文件呢?
所以,别着急慢慢来,这只是最基础的知识,在以后的文章花姐将用一个更实用的案例来告诉你学会python自动化有多省心。