功能描述:
可以合并指定文件夹内所有的excel文件,包括xls与xlsx,其他类型文件不影响,并且合并所有excel里面的每一个sheet,也就是各个工作簿下面的各个sheet。
注意:这里的文件夹指定为:桌面下的excel文件夹内。
对于不同路径以及,想要多个工作簿的指定sheet可以稍加修改,同样可以使用。
最后在相同路径下面会默认生成一个汇总excel,所以尽量不要包含此名称的excel,如有需要也可加一行判断。
import pandas as pd
import os
dir = "C:\\Users\\lenovo\\Desktop\\excel\\"
def read_sheet(file_dir):
dfs = []
for file in os.listdir(file_dir):
if file.endswith("xlsx") or file.endswith("xls"):
file_sheet = pd.read_excel(file_dir + "\\" + file, sheet_name=None)
for sheet_name in file_sheet:
file_data = pd.read_excel(file_dir + "\\" + file, sheet_name)
file_data.insert(0, "工作簿", file)
file_data.insert(1, "工作表", sheet_name)
dfs.append(file_data)
df = pd.concat(dfs, sort=False)
writer = pd.ExcelWriter(file_dir + '汇总.xlsx', engin='openpyxl')
df.to_excel(writer, sheet_name="sheet1", index=False)
writer.save()
writer.close()
if __name__ == "__main__":
read_sheet(dir)
print("合并完成")