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è)簡(jiǎn)單的小例子,簡(jiǎn)述如何通過(guò)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文件中,并保存到指定位置。
效果示例
本例為了簡(jiǎn)化操作,總共有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('此目錄下沒(méi)有對(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('沒(méi)有需要保存的內(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')
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python使用selenium登錄QQ郵箱(附帶滑動(dòng)解鎖)
這篇文章主要為大家詳細(xì)介紹了python使用selenium登錄QQ郵箱,帶滑動(dòng)解鎖登錄功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
python利用JMeter測(cè)試Tornado的多線程
這篇文章主要介紹了python利用JMeter測(cè)試Tornado的多線程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
python2 與 python3 實(shí)現(xiàn)共存的方法
這篇文章主要介紹了python2 與 python3 實(shí)現(xiàn)共存的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
python解決pandas處理缺失值為空字符串的問(wèn)題
下面小編就為大家分享一篇python解決pandas處理缺失值為空字符串的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
windows下Anaconda的安裝與配置正解(Anaconda入門教程)
最近很多朋友學(xué)習(xí)python,很多朋友也推薦使用anaconda這個(gè)工具,但安裝以后也不會(huì)使用,這里腳本之家小編就為大家整理一下比較詳細(xì)的教程,方便自己也方便需要的朋友,希望大家以后多多支持腳本之家2018-04-04
基于Python實(shí)現(xiàn)圖片九宮格切圖程序
這篇文章主要為大家詳細(xì)介紹了如何利用python和C++代碼實(shí)現(xiàn)圖片九宮格切圖程序,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2023-04-04
PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg
這篇文章主要為大家介紹了PyTorch實(shí)現(xiàn)聯(lián)邦學(xué)習(xí)的基本算法FedAvg,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

