昨天发的 3 个新手编程项目那篇,后台直接被问爆了,好多同学说就想先学最实用的 Excel 批量处理工具,这不赶紧把完整步骤、能直接跑的源码,还有我当初踩过的坑都整理出来了。
说真的,这是我大一半路 “摸鱼” 摸出来的项目。当时当班委要收十几个班的期末成绩表,我手动合并、一个个筛不及格的人,折腾了快俩小时,眼睛都看花了。后来硬着头皮写了个几十行的小脚本,十几秒就跑完了,那成就感真的比做对十道课后题强 10 倍。
也是这个小项目,成了我第一个写进简历的实战经历。没有花里胡哨的框架,就用最基础的 Python 语法就能实现,哪怕你只学过点基础,跟着步骤半小时就能跑通。
先跟大家说句实在的:这玩意儿到底能干啥
说白了就是个批量处理 Excel 的自动化小工具,学生党、刚实习的新人高频要用的需求,它基本都能搞定:
一键把文件夹里几十上百份格式一样的 Excel 表格,合成一张总表 自动删掉空行、统一数据格式,顺手做基础的数据清洗 能自己定规则标记异常数据,比如低于 60 分的成绩、超出范围的数值 处理完直接自动输出结果文件,全程不用你手动改
技术栈特别简单,就用 Python 基础语法,加两个常用工具:管文件的os模块、处理表格的pandas库,没啥额外的学习门槛。不管是社团统计数据、课程作业处理数据集,还是以后实习干基础数据活儿,这工具都能直接用上。面试的时候讲出来,可比干巴巴说一句 “我掌握 Python 基础” 有说服力多了。
先花 5 分钟搞定前置准备,有手就行
1、装 Python 环境
这个大家上课基本都装过了,没装的直接去 Python 官网下个安装包,一路点下一步就行,没啥难度。
2、装 pandas 库
打开电脑的命令行(Windows 按 Win+R 输 cmd,Mac 开终端),敲一行命令回车,等着装完就好:
pip install pandas- 3、准备测试用的表格
在电脑上新建个叫 excel_files的文件夹,往里放 2-3 份表头一模一样的 Excel 表格就行(比如表头都是姓名、学号、分数),第一次跑先别搞太复杂,避免格式不对报错。
完整源码 + 解析(复制就能用)
下面是完整能直接跑的基础版代码,我拆成了一小块一小块,每块都讲明白是干啥的,直接复制到.py 文件里就能运行。
1. 先导入要用的工具
# os模块:帮你批量找文件、管文件夹import os# pandas库:专门处理Excel表格数据的神器import pandas as pd
就两行,相当于提前把要用的工具拿出来,os负责翻文件夹找所有 Excel,pandas负责处理表格里的内容。
2. 设好文件路径
# 待处理的Excel都放在这个文件夹里(相对路径,和脚本放同一个地方就行)folder_path = './excel_files'# 处理完的结果,存成这个文件output_file = './合并结果.xlsx'
excel_files文件夹放在同一个地方,直接就能跑,不用改那些复杂的绝对路径。# 筛选出文件夹里所有.xlsx结尾的Excel文件file_list = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]# 建个空列表,一会儿存每个表格的数据df_list = []
.xlsx改成.xls就行。# 循环遍历每一个Excel文件for file in file_list:# 拼出完整的文件路径file_path = os.path.join(folder_path, file)# 读取Excel里的第一个工作表df = pd.read_excel(file_path)# 多加一列,记下来这条数据来自哪个文件,后面核对方便df['来源文件'] = file# 把读好的表格数据放进列表里df_list.append(df)
# 把所有表格拼成一张总表all_data = pd.concat(df_list, ignore_index=True)# 删掉全是空值的无效行all_data = all_data.dropna(how='all')
concat就是 pandas 里最常用的合并功能,ignore_index=True是重新排序号,避免合并完序号乱掉;删空行就是基础的数据清洗,解决表格里有空行的问题。# 举个例子:如果表格有「分数」这一列,就把低于60分的标记成异常if '分数' in all_data.columns:all_data['是否异常'] = all_data['分数'].apply(lambda x: '是' if x < 60 else '否')
# 把处理好的数据存成Excel,不要索引列all_data.to_excel(output_file, index=False)# 跑完给个提示print(f'处理完成,结果已保存至{output_file}')
是想让这个项目更有含金量,可以慢慢加功能,后面我也会在合集里更详细的拆解:
加个图形化界面(GUI),不用敲命令,点按钮选文件夹就能跑 加自动美化格式的功能,自动给表头上色、调列宽,导出来就能直接用 扩展更多功能:批量拆分表格、自动做图表、甚至自动发邮件 最后跟大家说句真心话,新手做项目真的不用追求完美,先把基础版跑通,能解决自己的实际问题,就已经赢过一大半人了。我最开始的版本就只有个合并功能,后来用的次数多了,才慢慢加了异常标记、调格式这些功能,慢慢改呗,都是成长。
这是「小白能上手的计算机实战项目库」的第二篇,下一篇给大家拆解第二个项目 ——个人静态作品集网页,不用学 JavaScript,纯 HTML+CSS 就能做,做完直接当面试作品集用。
需要完整源码文件的同学,后台回复【Excel 项目】直接拿就行。跑通的同学可以在评论区打个卡,有啥报错搞不定的也可以留言,我看到都会回。
夜雨聆风