用 Python 將多張 Excel 合并為一張
前言
大家好,歡迎來到 Crossin的編程教室 !
前幾天遇見這么一個(gè)問題,手上有很多張表格,這些表格中都只有一個(gè) sheet,需要把這些表匯總到一張表。
一張表中有多個(gè) sheet,每一個(gè) sheet 的名稱是每張表格的文件名。
如果手動(dòng)合并,往往需要花不少時(shí)間。如有 100 張表格的話,那樣效率就太低了,于是弄了一個(gè)腳本來完成這個(gè)任務(wù)。
數(shù)據(jù)說明
我們找了一些測試數(shù)據(jù),放在了 abc 文件夾下,abc 隨便取的,只是一個(gè)保存數(shù)據(jù)的文件夾而已,在這個(gè)文件夾中只保存表格數(shù)據(jù),其他的不要保存:
然后需要把這些表格數(shù)據(jù)合并為同一張表格,里面有多個(gè) sheet,每一個(gè) sheet 的數(shù)據(jù)為每一張表的數(shù)據(jù)且命名為原始數(shù)據(jù)表的名稱。
腳本如下:
import pandas as pdimport?osresult?=?pd.ExcelWriter('result.xlsx')?#結(jié)果保存路徑origin_file_list?=?os.listdir(r'./abc') #獲取表格路徑for?i?in?origin_file_list:????file_path = r'./abc/%s' % i #拼接文件路徑????content = pd.read_excel(file_path) #讀取文件內(nèi)容????sheet_name?=?i[:len(i)-4]??#獲取文件名????content.to_excel(result,?sheet_name,?index=False)?#?寫入同一個(gè)表的不同sheetresult.save()
上面的代碼比較容易看懂,都有注釋。先設(shè)置輸出結(jié)果文件路徑及名稱,再獲得數(shù)據(jù)源的所在的路徑下的所有數(shù)據(jù)表的表名,循環(huán)讀取每一個(gè)文件,設(shè)置 sheet 名字,設(shè)置為多個(gè) sheet,最后保存。
運(yùn)行后得到 result.xlsx 文件:
打開查看結(jié)果,可以看到有多個(gè) sheet,且每一張 sheet 的名稱都為原始數(shù)據(jù)表的名稱:
到這里,這一個(gè)小需求就完成了。
注意:自己測試的時(shí)候,表格第一列第一行不能為空,否則會(huì)報(bào)錯(cuò)。
如果文章對(duì)你有幫助,歡迎轉(zhuǎn)發(fā)/點(diǎn)贊/收藏!
作者:木下瞳
來源:木下學(xué)Python
_往期文章推薦_



