Python批量合并Excel同名工作表

版权申诉
5星 · 超过95%的资源 7 下载量 21 浏览量 更新于2024-08-10 4 收藏 13KB DOCX 举报
"该资源是关于使用Python自动化合并多个Excel文件中同名Sheet的方法。" 在日常办公中,处理大量Excel表格数据时,有时需要将不同文件中的同名Sheet合并到一起,以便于管理和分析。Python作为一个强大的编程语言,提供了pandas库来方便地操作Excel数据。本示例中,通过Python实现这一功能,步骤如下: 首先,导入必要的库,包括pandas(用于数据处理)和os(用于文件操作): ```python import pandas as pd import os ``` 接下来,创建一个集合`all_fname`来存储所有Sheet的名字,以及一个列表`dfs`来存放读取到的数据: ```python all_fname = set() # 存储所有Sheet名字的集合 dfs = [] # 存放数据的列表 ``` 然后,使用`os.listdir()`遍历指定目录下的所有文件,并筛选出`.xlsx`格式的文件: ```python filelists = os.listdir('C:/Users/Administrator/PycharmProjects/excel/多个excel的同名工作表的合并') for fname in filelists: if fname.endswith('.xlsx') and fname != 'all_data.xlsx': # ... ``` 对每个符合条件的Excel文件,使用`pd.read_excel()`读取所有Sheet的内容,并将其添加到`dfs`列表中: ```python df = pd.read_excel(fname, header=None, sheet_name=None) dfs.append(df) ``` 在遍历过程中,将所有Sheet的名称添加到`all_fname`集合中,以便后续使用: ```python for sh in df: all_fname.add(sh) ``` 创建一个新的Excel写入器`writer`,它可以用来保存合并后的数据: ```python writer = pd.ExcelWriter('all_data.xlsx') ``` 接着,遍历`all_fname`中的每个Sheet名,收集同名Sheet的数据,并使用`pd.concat()`拼接这些数据: ```python data_li = [] # 存放相同工作表名的数据 for data in dfs: n_rows = data_li.append(data[sheet_name]) group_data = pd.concat(data_li) # 拼接同名数据 ``` 最后,将拼接后的数据写入`writer`,并保存到新的Excel文件中: ```python group_data.to_excel(writer, sheet_name=sheet_name, index=False) ``` 完成所有Sheet的处理后,保存整个工作簿: ```python writer.save() ``` 这个Python脚本的执行结果是,它会将指定目录下所有Excel文件中同名的Sheet合并到一个名为`all_data.xlsx`的新Excel文件中,便于集中查看和处理数据。这种方法极大地提高了处理大量Excel数据的效率,尤其适合需要跨文件整理和比较数据的场景。