站长网 语言 用Python实现多Excel、多Sheet的合并处理的方法

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

1)如何选择要合并的Excel文件? 利用os,获取所有要合并的Excel文件。 2)如何选择要合并的Sheet? 利用xlrd库进行Excel读取,获取要合并的Sheet名。 3)如何合并? 利用pandas库,对所有Sheet名逐一循环打开,通过concat()进行数据追加合并即可。 4)如何保存文

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

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

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

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

3)如何合并?

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

4)如何保存文件?

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

项目实现

1、第一步导入需要的库

import pandas as pd 

import xlrd 

import 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 

 #打开第一个EXCEL 

 first_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_names 

         if 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 = _df 

             else: 

                 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 += 1 

writer.save() 

writer.close() 

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/biancheng/yuyan/2021/0523/4676.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部