大家好罐栈,我是小瑜~
在上大學(xué)的時候豪嗽,小瑜是學(xué)生會的,那時候經(jīng)常會讓收集各種表格冕象,這些表格是我們做好的模板代承,然后讓各班學(xué)生進(jìn)行填寫的,然后我們只需要將反饋回來的附件給匯總成一個文件渐扮。這個工作看似很簡單论悴,但是我們每個月都有各種類型的表格要進(jìn)行收集統(tǒng)計,如果每一次都是這樣操作的話墓律,那出去說自己是計算機(jī)專業(yè)的也太丟人了膀估。
所以,小瑜今天跟大家分享一個批量合并Excel表格的方法只锻。這個方法分為以下幾個部分玖像。
點擊獲取源碼,提取碼:qwer
01
Excel的讀取和寫入
這里我們用到的是Openpyxl庫來對Excel進(jìn)行讀取和寫入操作齐饮。
1. Excel的讀取
首先調(diào)用openpyxl.load_workbook()函數(shù)捐寥,打開“菠蘿.xlsx”文件。
wb = openpyxl.load_workbook('菠蘿.xlsx')
然后獲取“菠蘿.xlsx”工作薄中名為“Sheet”的工作表祖驱。
sheet = wb['Sheet']
把“Sheet”工作表中A1單元格賦值給A1_cell握恳,再利用單元格value屬性,就能獲得A1單元格的值捺僻。
A1_cell = sheet['A1']
A1_value = A1_cell.value
以上就是Excel文件的讀取啦乡洼!其他的單元格的數(shù)據(jù)獲取同上,如想批量獲取匕坯,只需加上一個for循環(huán)即可束昵。
2.Excel的寫入
利用openpyxl.Workbook()函數(shù)創(chuàng)建新的workbook(工作薄)對象葛峻,就是創(chuàng)建新的空的Excel文件锹雏。
wb_1 = openpyxl.Workbook()
創(chuàng)建完新的工作薄后,還得獲取工作表术奖。不然程序會無所適從礁遵,不知道要把內(nèi)容寫入哪張工作表里。
sheet_1 = wb_1.active
如果我們想往工作表里寫入一行內(nèi)容的話采记,就得用到append函數(shù)佣耐。然后如果想批量插入的話,我們加上一個for循環(huán)就可以了唧龄。
a = [A_cell.value,B_cell.value,C_cell.value,D_cell.value,E_cell.value]
sheet_1.append(a)
往單元格里寫入內(nèi)容只要定位到具體的單元格兼砖,如A1(根據(jù)Excel的坐標(biāo),A1代表第一列第一行相交的單元格),然后給這個單元格賦值即可掖鱼。它可以方便我們輸入文件的表頭然走。
sheet_1['A1'] = ' '
sheet_1['B1'] = ' '
sheet_1['C1'] = ' '
sheet_1['D1'] = ' '
sheet_1['E1'] = ' '
#寫入你的表頭名稱
以上就是Excel文件的寫入啦!如想批量寫入戏挡,只需加上一個for循環(huán)即可。
02
批量獲取Excel文件
在上面我們已經(jīng)學(xué)會如何讀取和寫入Excel文件了晨仑,但是在讀取文件名的時候褐墅,我們還是需要手動輸入的,如果文件很多的話洪己,我們要一個一個的輸入妥凳,這不僅麻煩,而且也不符合自動化辦公的名頭答捕。所以逝钥,我們就需要想辦法取得該目錄下的所以Excel文件。
這里我們用的是Pathlib庫拱镐。
取得該目錄下所有的xlsx格式文件
path = 'K:\自動化辦公'
將該目錄下所有文件存儲到files列表中艘款。
files = []
p = Path(src_path)
for x in p.iterdir():
? if PurePath(x).match('*.xlsx'):
? ? ? files.append(x)
03
小結(jié)
批量合并Excel文件的思路是:
1. 獲取該目錄下所有的Excel文件,并存入一個列表中沃琅。
2. 創(chuàng)建好匯總的Excel文件哗咆。
3. 依次讀取Excel文件,并寫入?yún)R總文件中益眉。
4. 保存匯總文件晌柬。