excel学习库

excel表格_excel函数公式大全_execl从入门到精通

WPS收费功能免费用!Pandas实现多层级多Sheet的Excel文件合并!

文章的开始我们先研究一下WPS的表格合并,这是一个收费功能。

可以看到,他按照相同的列名,将表格按行合并。

Pandas作为一个强大的数据分析工具,此功能轻而易举。那么我们就来实现一个将某个文件夹下所有Excel文件合并的程序,包括子文件夹、 包括单文件的多Sheet。

首先,我们先看下此次模拟数据,我们C盘下有个文件夹叫demo,其下有两个文件和一个文件夹。

其中,测试数据1文件中有两个Sheet有示例数据,其他所有文件均只有一个Sheet有数据。

demo1下也有两个文件,他们只有Sheet1有数据且和上述图中示例数据相同。

这样合并结果应是示例数据重复5次(4个文件的Sheet1数据+测试数据1的Sheet2数据)。

1. 安装依赖

# 必选依赖pip install pandas# 操作Excel时,必选依赖pip install "pandas[excel]"

2. 读取文件夹下所有Excel文件的路径

import osroot_dir = r"C:\demo"def get_file_paths(root_dir):    file_paths = []    for root, dirs, files in os.walk(root_dir):        for file in files:            if ("xls" in file) or ("xlsx" in file):                file_path = os.path.join(root, file)                file_paths.append(file_path)    return file_paths# ['C:\\demo\\测试数据1.xlsx',# 'C:\\demo\\测试数据2.xlsx',# 'C:\\demo\\demo1\\测试数据3.xlsx',# 'C:\\demo\\demo1\\测试数据4.xlsx']print(get_file_paths(root_dir))

3. 遍历所有文件,遍历Sheet,读出内容并合并

df = pd.DataFrame()for file_path in get_file_paths(root_dir):    excel_file = pd.ExcelFile(file_path)    for sheet_name in excel_file.sheet_names:        df_temp = pd.read_excel(file_path, sheet_name=sheet_name)        df = pd.concat([df, df_temp])df.to_excel(r"C:\demo\合并结果.xlsx")

打开合并结果文件可以看到,非常简洁的几行代码,就完成了多层次,多Sheet的表格合并功能!

4. 总结

Pandas库是Python最强的数据分析库之一,使用它可以很方便汇总和统计数据,提高工作效率。在日常工作中,您有什么繁琐的Excel操作需求呢?欢迎交流!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接