Python 自动化办公:轻松搞定 Excel 操作,从此告别手动输入!

355 阅读5分钟

大家好呀,花姐又来给大家带来一篇干货满满的 Python 技术文章啦!今天我们要聊的主题是 Excel —— 不是你每天都在用的那个 Excel 哦,而是如何通过 Python 来自动化操作 Excel,节省我们每天重复的“低级劳动”,让我们有更多时间喝奶茶、追剧,嗯…我说的是工作啦!


一、Excel 基础,你需要知道的“表格世界”

大家可能都对 Excel 有一定的了解,但当我们开始用 Python 自动化操作时,需要掌握一些基本的概念,保证你的操作能够顺利进行。

  1. Excel 简介
    Excel,大家都知道,它是我们工作中不可或缺的“计算神器”。无论是财务报表、数据分析,还是简单的成绩表,Excel 都能派上用场。你是不是也和我一样,有过在 Excel 表格里加班的时光?那种“在 1000 行数据中找 bug”的心情,简直酸爽到不行。😂

  2. Excel 文件结构
    Excel 文件由三大基本元素构成:

    • 工作簿(Workbook):这就是你打开的整个文件,包含了多个工作表。
    • 工作表(Worksheet):每个工作簿可以包含多个工作表,你可以理解为不同的“页面”。
    • 单元格(Cell):表格中每个小格子,最基本的数据单位。

这些结构,掌握了,才能更好地与 Excel 打交道。

  1. 安装 openpyxl 模块
    如果你已经准备好通过 Python 来操作 Excel,那么首先要安装 openpyxl 模块。这个库可以帮助我们读取、写入 Excel 文件。操作它就像和 Excel 亲密无间地“搭档”一样。

安装 openpyxl 的命令如下:

pip install openpyxl

如果安装成功,恭喜你,你已经可以开始操作 Excel 了!🎉


二、读取 Excel 文件 —— 让我们打开 Excel 文件,看看有什么“宝藏”

接下来,我们进入正题,怎么通过 Python 打开 Excel 文件并读取其中的内容呢?

  1. 打开工作簿
    首先,我们需要打开一个 Excel 文件(也就是加载工作簿),这时你可以使用 openpyxl.load_workbook() 函数。来吧,我们直接代码上手!
import openpyxl

# 打开一个 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')
  1. 获取工作表
    工作簿里可以有多个工作表,你可以通过 sheetnames 属性来查看所有工作表的名字,或者使用 active 属性来获取当前激活的工作表。
# 获取所有工作表名称
print(workbook.sheetnames)

# 获取当前激活的工作表
sheet = workbook.active
  1. 读取单元格数据
    现在,我们可以开始读取单元格的内容了。你可以通过单元格的位置来获取内容,比如 A1B2 等,或者使用 cell() 方法。
# 读取 A1 单元格的内容
print(sheet['A1'].value)

# 通过行列索引读取单元格内容
print(sheet.cell(row=1, column=1).value)
  1. 获取行和列的数据
    想要获取整行或整列的数据吗?没问题!rowscolumns 属性能帮你搞定。
# 获取第一行数据
for cell in sheet[1]:
    print(cell.value)

# 获取第一列数据
for cell in sheet['A']:
    print(cell.value)
  1. 列字母与数字的转换
    如果你习惯了 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 文件内容:

姓名年龄性别成绩
小李2288
小周2192
小王2375
小赵2485

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自动化有多省心。