假如公司需要統計每個員工的個人資訊,制定好模板后,由員工填寫,然后發送到綜合部進行匯總,在這種情況下,如果公司有上百位員工的資訊需要統計,且采用純手工進行復制粘貼的方式進行匯總,則將是一項耗時費力易錯的作業,本文主要以一個簡單的小例子,簡述如何通過Pyhton進行自動化檔案合并,
涉及知識點
- xlrd模塊:檔案的讀取
- xlwt模塊:檔案的生成
設計思路
- 獲取指定目錄下所有excel格式的檔案,
- 回圈讀取Excel檔案內容【讀取固定的行與列】,將內容暫存記憶體中,
- 將記憶體中資料,寫入到新的Excel檔案中,并保存到指定位置,
效果示例
本例為了簡化操作,總共有10個需要匯總的檔案,如下所示:

每一個檔案采用相同模板,格式一致,如下所示:

匯總后的檔案,如下所示:

核心代碼
引入相關的模塊,如下所示:
1 import xlrd 2 import xlwt 3 import os
讀取excel內容,如下所示:
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內容,如下所示:
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')
備注
相思
【作者】王維 【朝代】唐紅豆生南國,春來發幾枝,
愿君多采擷,此物最相思,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/292850.html
標籤:其他
上一篇:Java 浮點數精確性探討(IEEE754 / double / float)與 BigDecimal 解決方案
下一篇:Python入門實戰系列文章
