python實(shí)現(xiàn)自動(dòng)化之文件合并
假如公司需要統(tǒng)計(jì)每個(gè)員工的個(gè)人信息,制定好模板后,由員工填寫,然后發(fā)送到綜合部進(jìn)行匯總,在這種情況下,如果公司有上百位員工的信息需要統(tǒng)計(jì),且采用純手工進(jìn)行復(fù)制粘貼的方式進(jìn)行匯總,則將是一項(xiàng)耗時(shí)費(fèi)力易錯(cuò)的工作。本文主要以一個(gè)簡單的小例子,簡述如何通過Pyhton進(jìn)行自動(dòng)化文件合并。
涉及知識(shí)點(diǎn)
- xlrd模塊:文件的讀取
- xlwt模塊:文件的生成
設(shè)計(jì)思路
1、獲取指定目錄下所有excel格式的文件。
2、循環(huán)讀取Excel文件內(nèi)容【讀取固定的行與列】,將內(nèi)容暫存內(nèi)存中。
3、將內(nèi)存中數(shù)據(jù),寫入到新的Excel文件中,并保存到指定位置。
效果示例
本例為了簡化操作,總共有10個(gè)需要匯總的文件,如下所示:
每一個(gè)文件采用相同模板,格式一致,如下所示:
匯總后的文件,如下所示:
核心代碼
引入相關(guān)的模塊,如下所示:
import xlrd import xlwt import os
讀取excel內(nèi)容,如下所示:
def read_excel(excel_folder: str): """ 讀取Excel文檔 :param excel_folder: :return: """ excel_files = [] # excel文件列表 excel_contents = [] # excel文件內(nèi)容 files = os.listdir(path=excel_folder) if len(files) > 0: for file in files: if file.endswith('.xls'): excel_files.append(file) if len(excel_files) == 0: print('此目錄下沒有對(duì)應(yīng)的Excel文件') # 循環(huán)讀取文檔 for file in excel_files: full_path = os.path.join(excel_folder, file) book = xlrd.open_workbook(filename=full_path) sheet = book.sheet_by_index(sheetx=0) # 取固定位置的值 content = { '名稱': sheet.cell_value(1, 0), '年紀(jì)': sheet.cell_value(1, 1), '性別': sheet.cell_value(1, 2), '籍貫': sheet.cell_value(1, 3) } excel_contents.append(content) return excel_contents
生成Excel內(nèi)容,如下所示:
def write_excel(excel_path: str, excel_contents: list): """ 生成Excel文檔 :param excel_path: :return: """ if len(excel_contents) == 0: print('沒有需要保存的內(nèi)容') return book = xlwt.Workbook(encoding='utf-8') sheet1 = book.add_sheet('統(tǒng)計(jì)信息') # 先寫標(biāo)題 sheet1.write(0, 0, '名稱') sheet1.write(0, 1, '年紀(jì)') sheet1.write(0, 2, '性別') sheet1.write(0, 3, '籍貫') i = 1 for content in excel_contents: sheet1.write(i, 0, content['名稱']) sheet1.write(i, 1, content['年紀(jì)']) sheet1.write(i, 2, content['性別']) sheet1.write(i, 3, content['籍貫']) i += 1 book.save(excel_path)
整體調(diào)用
excel_folder = r'D:\MyProject\Demo01\TESTEXCEL' excel_path = r'D:\MyProject\Demo01\TESTEXCEL\匯總信息.xls' excel_contents = read_excel(excel_folder) # print(excel_contents) write_excel(excel_path, excel_contents) print('done')
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python+OpenCV實(shí)現(xiàn)車牌號(hào)碼識(shí)別
這篇文章主要介紹了python+OpenCV實(shí)現(xiàn)車牌號(hào)碼識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Python生成任意范圍任意精度的隨機(jī)數(shù)方法
下面小編就為大家分享一篇Python生成任意范圍任意精度的隨機(jī)數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04解決Python 中JSONDecodeError: Expecting value:&n
這篇文章主要介紹了解決Python 中JSONDecodeError: Expecting value: line 1 column 1 (char 0)錯(cuò)誤問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03Python利用PIL實(shí)現(xiàn)多張圖片合成gif動(dòng)畫的案例詳解
這篇文章主要介紹了Python利用PIL實(shí)現(xiàn)多張圖片合成gif動(dòng)畫的案例,文章通過代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以自己動(dòng)手試一下2023-11-11Python json轉(zhuǎn)字典字符方法實(shí)例解析
這篇文章主要介紹了Python json轉(zhuǎn)字典字符代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Python使用Selenium WebDriver的入門介紹及安裝教程(最新推薦)
這篇文章主要介紹了Python使用Selenium WebDriver的入門介紹及安裝教程,本文使用環(huán)境為python3.11+win10 64位+firefox瀏覽器,所以本文使用的瀏覽器驅(qū)動(dòng)是Firefox的geckodriver ,如果你使用的是其他瀏覽器,那么選擇自己對(duì)應(yīng)的瀏覽器驅(qū)動(dòng)程序即可,需要的朋友可以參考下2023-04-04