假如公司須要統計每一個員工的我的信息,制定好模板後,由員工填寫,而後發送到綜合部進行彙總,在這種狀況下,若是公司有上百位員工的信息須要統計,且採用純手工進行復制粘貼的方式進行彙總,則將是一項耗時費力易錯的工做。本文主要以一個簡單的小例子,簡述如何經過Pyhton進行自動化文件合併。app
本例爲了簡化操做,總共有10個須要彙總的文件,以下所示:spa
每個文件採用相同模板,格式一致,以下所示:設計
彙總後的文件,以下所示:3d
引入相關的模塊,以下所示:excel
1 import xlrd 2 import xlwt 3 import os
讀取excel內容,以下所示:code
1 def read_excel(excel_folder: str): 2 """ 3 讀取Excel文檔 4 :param excel_folder: 5 :return: 6 """ 7 excel_files = [] # excel文件列表 8 excel_contents = [] # excel文件內容 9 files = os.listdir(path=excel_folder) 10 if len(files) > 0: 11 for file in files: 12 if file.endswith('.xls'): 13 excel_files.append(file) 14 if len(excel_files) == 0: 15 print('此目錄下沒有對應的Excel文件') 16 # 循環讀取文檔 17 for file in excel_files: 18 full_path = os.path.join(excel_folder, file) 19 book = xlrd.open_workbook(filename=full_path) 20 sheet = book.sheet_by_index(sheetx=0) 21 # 取固定位置的值 22 content = { 23 '名稱': sheet.cell_value(1, 0), 24 '年紀': sheet.cell_value(1, 1), 25 '性別': sheet.cell_value(1, 2), 26 '籍貫': sheet.cell_value(1, 3) 27 } 28 excel_contents.append(content) 29 30 return excel_contents
生成Excel內容,以下所示:blog
1 def write_excel(excel_path: str, excel_contents: list): 2 """ 3 生成Excel文檔 4 :param excel_path: 5 :return: 6 """ 7 if len(excel_contents) == 0: 8 print('沒有須要保存的內容') 9 return 10 book = xlwt.Workbook(encoding='utf-8') 11 sheet1 = book.add_sheet('統計信息') 12 # 先寫標題 13 sheet1.write(0, 0, '名稱') 14 sheet1.write(0, 1, '年紀') 15 sheet1.write(0, 2, '性別') 16 sheet1.write(0, 3, '籍貫') 17 i = 1 18 for content in excel_contents: 19 sheet1.write(i, 0, content['名稱']) 20 sheet1.write(i, 1, content['年紀']) 21 sheet1.write(i, 2, content['性別']) 22 sheet1.write(i, 3, content['籍貫']) 23 i += 1 24 book.save(excel_path)
總體調用內存
1 excel_folder = r'D:\MyProject\Demo01\TESTEXCEL' 2 excel_path = r'D:\MyProject\Demo01\TESTEXCEL\彙總信息.xls' 3 excel_contents = read_excel(excel_folder) 4 # print(excel_contents) 5 write_excel(excel_path, excel_contents) 6 print('done')
相思utf-8
紅豆生南國,春來發幾枝。文檔
願君多采擷,此物最相思。