加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 湛江站长网 (https://www.0759zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

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

发布时间:2022-12-09 11:25:44 所属栏目:编程 来源:
导读:  1)如何选择要合并的Excel文件?

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

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

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

  3)如何合并?

  利用p

  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()
 

(编辑:PHP编程网 - 湛江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!