真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

用Python批量實現(xiàn)多Excel多Sheet合并的方法有哪些

本篇內容介紹了“用Python批量實現(xiàn)多Excel多Sheet合并的方法有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供龍井企業(yè)網(wǎng)站建設,專注與網(wǎng)站制作、成都網(wǎng)站制作、H5場景定制、小程序制作等業(yè)務。10年已為龍井眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

一、前言

誠然,一個一個打開復制粘貼固然可行,但是該方法費時費力,還容易出錯,幾個文件還可以手動處理,要是幾十個甚至上百個,你就抓瞎了,不過這問題對Python來說,so  easy,一起來看看吧!

二、項目目標

用Python實現(xiàn)多Excel、多Sheet的合并處理。

三、項目準備

軟件:PyCharm

需要的庫:pandas, xlrd,os

四、項目分析

1)如何選擇要合并的Excel文件?

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

2)如何選擇要合并的Sheet?

利用xlrd庫進行Excel讀取,獲取要合并的Sheet名。

3)如何合并?

利用pandas庫,對所有Sheet名逐一循環(huán)打開,通過concat()進行數(shù)據(jù)追加合并即可。

4)如何保存文件?

利用to_excel保存數(shù)據(jù),得到最終合并后的目標文件。

五、項目實現(xiàn)

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內容進行循環(huán)合并

#按SHEET名循環(huán)  for sheet_name in sheet_names:      df = None      # 按EXCEL名循環(huán)      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()

六、效果展示

1、處理前Excel數(shù)據(jù):

用Python批量實現(xiàn)多Excel多Sheet合并的方法有哪些

2、運行進度提示:

用Python批量實現(xiàn)多Excel多Sheet合并的方法有哪些

3、合并后的結果:

用Python批量實現(xiàn)多Excel多Sheet合并的方法有哪些

彩蛋

下面兩份代碼是群內小伙伴提供了,小編也自行測試了下,親測有效,歡迎大家積極嘗試噢!

來自群友Jayson的代碼:

# -*- coding: utf-8 -*- # @Author: hebe # @Date:   2020-04-18 18:31:03 # @Last Modified by:   hebe # @Last Modified time: 2020-04-18 19:40:48 import os  import glob import openpyxl  def merge_xlsx_files(xlsx_files):     wb = openpyxl.load_workbook(xlsx_files[0])     ws = wb.active     ws.title = "merged result"      for  filename in xlsx_files[1:]:         workbook = openpyxl.load_workbook(filename)         sheet = workbook.active         for row in sheet.iter_rows(min_row=1):             values = [cell.value for cell in row]             ws.append(values)     return wb  #path is very important here , must true. def get_all_xlsx_files(path):     xlsx_files = glob.glob(os.path.join(r'C:\\Users\\pdcfi\\Desktop\\', '*.xlsx'))     sorted(xlsx_files, key=str.lower)     return xlsx_files  def main():     xlsx_files = get_all_xlsx_files(os.path.expanduser('~lmx'))     wb = merge_xlsx_files(xlsx_files)     wb.save('merged_form.xlsx')  if __name__ == '__main__':     main()      print("all excel append OK!")

來自好友劉早起的代碼:

# -*- coding: utf-8 -*- from openpyxl import load_workbook, Workbook import glob  path = "C:\\Users\\pdcfi\\Desktop\\excel\\" new_workbook = Workbook() new_sheet = new_workbook.active  # 用flag變量明確新表是否已經(jīng)添加了表頭,只要添加過一次就無須重復再添加 flag = 0  for file in glob.glob(path + '/*.xlsx'):     workbook = load_workbook(file)     sheet = workbook.active      coloum_A = sheet['A']     row_lst = []     for cell in coloum_A:         if cell:             print(cell.row)             row_lst.append(cell.row)      if not flag:         header = sheet[1]         header_lst = []         for cell in header:             header_lst.append(cell.value)         new_sheet.append(header_lst)         flag = 1      for row in row_lst:         data_lst = []         for cell in sheet[row]:             data_lst.append(cell.value)         new_sheet.append(data_lst)  new_workbook.save(path + '/' + '符合篩選條件的新表.xlsx')

來自群友Engineer的代碼:

import tkinter as tk from tkinter import filedialog import os import pandas as pd import glob  root = tk.Tk() root.withdraw()  # 選擇文件夾位置 filelocation = os.path.normpath(filedialog.askdirectory(initialdir=os.getcwd())) lst = []  # 讀取文件夾下所有文件(xls和xlsx都讀取) for i in glob.glob(filelocation + "\\\\" + "*.*"):     if os.path.splitext(i)[1] in [".xls", ".xlsx"]:         lst.append(pd.read_excel(i))  # 保存合并后的excel文件 writer = pd.ExcelWriter(filedialog.asksaveasfilename(title="保存", initialdir=filelocation, defaultextension="xlsx",                                                      filetypes=[("Excel 工作簿", "*.xlsx"),                                                                 ("Excel 97-2003 工作簿", "*.xls")])) pd.concat(lst).to_excel(writer, 'all', index=False) writer.save()  print('\n%d個文件已經(jīng)合并成功!' % len(lst))

“用Python批量實現(xiàn)多Excel多Sheet合并的方法有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質量的實用文章!


當前題目:用Python批量實現(xiàn)多Excel多Sheet合并的方法有哪些
標題網(wǎng)址:http://weahome.cn/article/jchsjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部