01 应用场景
大家都知道Python在数据分析、处理方面的优势,今天就分享一个Python批量处理Excel的小案例,比如你有一堆内容类似的表格需要合并到一起,那就可以试试下边这个经典的方法。
02 使用工具
应用库:pandas、openpyxl 、os
简单介绍一下这几个库在案例中的作用 :
pandas:如果你学习Python是为了数据处理或者数据分析,那一定离不开pandas这个库,简单介绍一下Pandas这个库,pandas 是 Python 语言的一个扩展程序库,用于数据分析,提供高性能、易于使用的数据结构和数据分析工具。pandas 名字衍生自术语 "panel data"(面板数据)和 "Python data analysis"(Python 数据分析)。
openpyxl,用于处理xlsx形式的Excel;os,这里用于分析路径
03 案例演示
我在我的文件下放了3个表

每个表的结构都是下图形式,第一列必须是文本型数字

直接附代码如下

合并效果如图

代码解析
#导入需要使用的3个库
import pandas as pd
import os
import openpyxl
#第一行代码,获取数据所在的文件夹
path=r"C:\Users\LENOVO\Desktop\素材\示例"
#第二行代码,获取文件下所有的表名
file_list=os.listdir(path)
#第三行代码,建立一个空列表
new=[]
第四行代码:for循环遍历每一个路径,并用pandas中read_excel方法读取内容
for p in file_list:
use_path=os.path.join(path,p)
#第六行代码这里要声明engine,这里tips详讲,因为业务员工号是文本型数字,所以dtype声明一下
r=pd.read_excel(use_path,engine="openpyxl",dtype={"业务员工号":str})
new.append(r)
df = pd.concat(new)
#第七八行代码,表示将每次遍历到的内容添加到空列表new中,最后将new中内容合并
#第九行代码,将合并后的结果写入Excel中
df.to_excel("合并.xlsx",index=False)
以上9步九轻松实现批量合并Excel的功能
04 补充tip
这是我平时工作中比较常用的功能,但是今天写笔记和代码运行的时候,发现报错
“EXTERNSHEET(b7-) ”,查了一下原因,看到有人说需要升级一下xlrd
--upgrade xlrd
尝试升级之后发现依然报错,现在报的错是Excel xlsx file; not supported
找到一个比较靠谱的说法,如下图,xls使用xlrd,read_excel 时不需要单独声明engine,但是xlsx就需要使用openpyxl,所以上图中代码加了engine这个参数
