1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 用Python批量实现多Excel多Sheet合并 学会这4步就够了

用Python批量实现多Excel多Sheet合并 学会这4步就够了

时间:2024-01-24 11:07:22

相关推荐

用Python批量实现多Excel多Sheet合并 学会这4步就够了

一、前言

Python自动化文章后续,有比较的读者面临这个问题,有很多个Excel表格,他需要对这些Excel文件进行合并。

诚然,一个一个打开复制粘贴固然可行,但是该方法费时费力,还容易出错,几个文件还可以手动处理,要是几十个甚至上百个,就有点费事费力了。本文我们用Python来实现一下,轻松提升工作效率。

二、项目目标

用Python实现多Excel、多Sheet的合并处理。

三、项目准备

软件:PyCharm

需要的库:pandas, xlrd,os

四、项目分析

1)如何选择要合并的Excel文件?

利用os,获取所有要合并的Excel文件。

2)如何选择要合并的Sheet?

利用xlrd库进行Excel读取,获取要合并的Sheet名。

3)如何合并?

利用pandas库,对所有Sheet名逐一循环打开,通过concat()进行数据追加合并即可。

4)如何保存文件?

利用to_excel保存数据,得到最终合并后的目标文件。

五、项目实现

1、第一步导入需要的库

import pandas as pdimport xlrdimport os

2、第二步选择要合并的Excel文件

#要合并文件路径path="D:/b/"#获取文件夹下所有EXCEL名xlsx_names = [x for x in os.listdir(path) if x.endswith(".xlsx")

3、第三步选择要合并的Sheet

# 获取第一个EXCEL名xlsx_names1 = xlsx_names[0]aa = path + xlsx_names1#打开第一个EXCELfirst_file_fh=xlrd.open_workbook(aa)# 获取SHEET名first_file_sheet=first_file_fh.sheets()

4、第四步对Sheet内容进行循环合并

#按SHEET名循环for sheet_name in sheet_names:df = None# 按EXCEL名循环for xlsx_name in xlsx_names:sheet_na = pd.ExcelFile(path + xlsx_name).sheet_namesif sheet_name in sheet_na:#print(sheet_name)_df = pd.read_excel(path + xlsx_name, sheet_name=sheet_name,header=None)if df is None:df = _dfelse:df = pd.concat([df, _df], ignore_index=True)else:continue

5、第五步保存合并后的文件

df.to_excel(excel_writer=writer, sheet_name=sheet_name, encoding="utf-8", index=False)print(sheet_name + " 保存成功!共%d个,第%d个。" % (len(sheet_names),num))num += 1writer.save()writer.close()

六、效果展示

1、处理前Excel数据:

2、运行进度提示:

3、合并后的结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。