使用openpyxl合併多個excel檔案
阿新 • • 發佈:2018-12-03
使用openpyxl合併多個excel檔案
自office 2016後,便可以合併多個excel檔案,但是當excel檔案過多時,office2016效率並不高,雨是我自己寫了個合併excel檔案的程式碼,這裡我們需要用到openpyxl 這個第三方庫 ,如從未接觸過openpyxl這個第三方庫,我建議你先去了解一下,這個庫的一些知識,當然,你可以跳過這些知識,直接使用以下程式碼,但我覺得還是先了解一下為好。
如想使用程式碼,更換資料夾路徑即可。
值得注意的是這是合併多個excel文件,且文件只有一個相同結構sheet表,才可使用的程式碼!
#!/usr/bin/env python # -*- coding:utf-8 -*- # time 2018-11-23 # Author fcj # message 處理資料 from openpyxl import load_workbook import os from openpyxl import Workbook from openpyxl.drawing.image import Image # 注意當你想往excel寫入圖片時,可使用這個方法。 def del_excel(): file_list = os.walk('D:/集合/銀行/') # 獲取這個資料夾下所有的excel文件。 for file in file_list: path_list = file[2] wb = Workbook() ws1 = wb.create_sheet('銀行', index=0) 創造合併之後的sheet表的名字 title_list = ['名字','個人照片', '二維碼'] # sheet表的表頭建立 ws1.append(title_list) for ph in path_list: # 迭代遍歷所有excel 文件 print('ph %s' % ph) ph = ph.replace('~$', '') if str(ph).endswith('sx'): res = find_excel(path='D:/集合/銀行/' + ph) # 構建單個文件路徑 ws1.append(res) wb.save('D:/FX.xlsx') def find_excel(path): # 獲取excel文件內容的方法 wb = load_workbook(path) sheet = wb.active content = [] for index, row in enumerate(sheet.rows): if index > 0: # 因為 index = 0時,獲取到的為表格的值。 # print(row) for item in row: # 這個迭代無特殊情況 可簡化一下 # print(item.value) content.append(item.value) # 注意,獲取到的是一行的值 return content if __name__ == '__main__': del_excel()