想学会Python自动化办公?这20个Excel表格操作脚本一定要掌握!

✨前言:老板的"灵魂拷问"

事情是这样的,某天老板突然丢过来一个Excel表格,拍着桌子说:

"小李,这个Excel里几千行数据,你给我整理一下,明天早上要用!"

我当时差点没把手里的奶茶喷出来,心想:几千行?手动改?我这怕不是得改秃了!

于是,我默默打开了我的Python神器------pandasopenpyxl,不到十分钟,任务搞定,潇洒下班。老板看着整齐的数据,眼里透着光,转头又给我派了个新活儿......

既然自动化办公这么香,那今天就给大家分享20个超实用的Excel操作脚本,让你轻松搞定表格数据处理,成为职场效率王!💡

在学习技能之前确保电脑里已经安装了pandasopenpyxl这2个必备神器!

复制代码
pip install pandas openpyxl

🔢 1. 读取Excel文件

python 复制代码
import pandas as pd

# 读取Excel
df = pd.read_excel("data.xlsx")
print(df.head())  # 查看前5行数据

💡 用途:打开Excel文件,读取数据,如果Excel中多个Sheet里都有数据,默认获取第一个Sheet里的数据。

🔢 2. 保存Excel文件

python 复制代码
df.to_excel("output.xlsx", index=False)

💡 用途 :保存DataFrame格式数据为Excel文件,index=False表示不保存索引。

🔢 3. 读取多个Sheet

python 复制代码
df_dict = pd.read_excel("data.xlsx", sheet_name=None)  # 读取所有Sheet
print(df_dict.keys())  # 打印所有Sheet名称 比如 dict_keys(['Sheet1', 'Sheet2'])

# 遍历df_dict打印出所有的数据
for key in df_dict:
    print(df_dict[key]) # 根据key值获取df_dict中存放的dataframe格式数据

💡 用途:一次性读取多个Sheet,返回字典格式,这个字典value对应了一个Dataframe格式的数据。

🔢 4. 选取特定列

python 复制代码
selected_columns = df[["姓名", "工资"]]
print(selected_columns.head())

💡 用途:提取某些关键列,方便分析。

🔢 5. 过滤数据

python 复制代码
high_salary = df[df["工资"] > 10000]  # 筛选工资大于1万的员工
print(high_salary)

💡 用途:数据筛选,比Excel的筛选功能还强大。

🔢 6. 处理空值

python 复制代码
df.fillna("缺失值", inplace=True)  # 用"缺失值"填充空值
df.dropna(inplace=True)  # 删除含空值的行

💡 用途 :处理空白单元格,防止数据异常。在 pandas 里,inplace=True 的作用是直接在原数据上进行修改,而不返回新的 DataFrame。

🔢 7. 添加新列

python 复制代码
df["奖金"] = df["工资"] * 0.1  # 工资的10%作为奖金

💡 用途:快速计算并添加新列。

🔢 8. 修改列名

python 复制代码
df.rename(columns={"姓名": "员工姓名"}, inplace=True)

💡 用途:更改列名,增强可读性。

🔢 9. 按条件修改数据

python 复制代码
df.loc[df["工资"] < 5000, "工资"] = 5000  # 最低工资设为5000

💡 用途:把工资列中值小于5000的都改成5000,批量修改数据,比手动改省事多了。

🔢 10. 排序数据

python 复制代码
df.sort_values(by="工资", ascending=False, inplace=True)

💡 用途 :按工资降序排列。ascending=False 是降序,ascending=True 是升序。

🔢 11. 计算数据统计值

python 复制代码
df["工资"].mean()     # 计算平均值
df["工资"].sum()      # 总和
df["工资"].max()      # 最大值
df["工资"].min()      # 最小值
df["工资"].median()   # 中位数
df["工资"].std()      # 标准差(衡量数据波动)
df["工资"].var()      # 方差(数据的离散程度)
df["工资"].count()    # 计数(非空值数量)
df["工资"].describe() # 一次性输出所有统计信息

💡 用途:数据统计,计算平均值、最大值等。

🔢 12. 合并两个表格

python 复制代码
df_new = pd.merge(df1, df2, on="员工ID", how="left")

💡 用途:类似Excel的VLOOKUP,这个代码的作用是 基于"员工ID"这个列,把 df2 的数据合并到 df1,并使用 left join 方式来匹配数据。

🔢 13. 透视表

python 复制代码
pivot = df.pivot_table(values="工资", index="部门", aggfunc="sum")

💡 用途:数据透视表,返回Dataframe格式,轻松分析数据。

🔢 14. 生成Excel带格式

python 复制代码
from openpyxl import Workbook
from openpyxl.styles import Font

wb = Workbook()
ws = wb.active
ws["A1"] = "姓名"
ws["A1"].font = Font(bold=True)  # 加粗
wb.save("styled.xlsx")

💡 用途:添加格式,提升Excel美观度。

🔢 15. 读取Excel某个单元格

python 复制代码
from openpyxl import load_workbook

wb = load_workbook("data.xlsx")
ws = wb.active
print(ws["B2"].value)  # 读取B2单元格

💡 用途:单元格精确读取。

🔢 16. 写入Excel单元格

python 复制代码
ws["C2"] = "新数据"
wb.save("data.xlsx")

💡 用途:向Excel写入数据。

🔢 17. 删除某列

python 复制代码
df.drop(columns=["奖金"], inplace=True)

💡 用途:删除不需要的数据列。

🔢 18. 复制数据

python 复制代码
copied_df = df.copy()

💡 用途 :避免修改原数据。copied_df = df.copy() 之所以要用 .copy(),是为了创建 df 的一个真正的副本,而不是简单的引用。如果你直接写 copied_df = df,那么 copied_df 其实只是 df 的一个视图,它们指向同一个数据对象,修改 copied_df 也会影响 df,反之亦然。

🔢 19. 批量写入多个Sheet

python 复制代码
with pd.ExcelWriter("output.xlsx") as writer:
    df1.to_excel(writer, sheet_name="Sheet1")
    df2.to_excel(writer, sheet_name="Sheet2")

💡 用途:一次性写入多个Sheet。

🔢 20. 生成柱状图

python 复制代码
df.plot(kind="bar", x="姓名", y="工资")

💡 用途 :数据可视化,这行代码生成的图表默认会直接显示在Jupyter Notebook或交互式环境(如IPython)里,但是如果你在终端或Python脚本中运行,图可能不会自动弹出。

让图表显示:

方法 1:加上 plt.show()

python 复制代码
import matplotlib.pyplot as plt

df.plot(kind="bar", x="姓名", y="工资")  # 生成柱状图
plt.show()  # 显示图表

plt.show() 会弹出一个窗口,把图像展示出来。

方法 2:保存为图片

如果想把图表保存成图片文件,可以用:

python 复制代码
df.plot(kind="bar", x="姓名", y="工资")
plt.savefig("salary_chart.png")  # 保存成PNG文件

这样你就可以在文件夹里找到 salary_chart.png 了!


🎉总结

学会这些Excel自动化脚本,能让你从手工整理Excel的苦力活中解放出来,早下班不是梦!希望大家都能成为Python自动化办公的高手,遇到Excel问题,不要慌,Python安排上!🚀

有啥问题,评论区见~ 😆

相关推荐
nuclear201118 分钟前
Python 从PPT文档中提取图片和图片信息(坐标、宽度和高度等)
python·powerpoint·ppt图片提取·提取ppt背景图片·提取pp所有图片
SoFlu软件机器人43 分钟前
飞算 JavaAI 与 Spring Boot:如何实现微服务开发效率翻倍?
spring boot·后端·微服务
樱花穿过千岛湖1 小时前
第六章:Multi-Backend Configuration
人工智能·python·gpt·学习·ai
来自星星的坤2 小时前
Vue 3中如何封装API请求:提升开发效率的最佳实践
前端·javascript·vue.js
跳跳糖炒酸奶2 小时前
第十五讲、Isaaclab中在机器人上添加传感器
人工智能·python·算法·ubuntu·机器人
FACELESS VOID2 小时前
llama-factory微调报错:
python
jack_xu2 小时前
经典大厂面试题——缓存穿透、缓存击穿、缓存雪崩
java·redis·后端
_一条咸鱼_3 小时前
Python 名称空间与作用域深度剖析(二十七)
人工智能·python·面试
_一条咸鱼_3 小时前
Python之函数对象+函数嵌套(二十六)
人工智能·python·面试
_一条咸鱼_3 小时前
Python 文件操作之修改(二十二)
人工智能·python·面试