十行代碼將多張Excel合並為一張


前幾天遇見這么一個問題,手上有很多張表格,這些表格中都只有一個 sheet,需要把這些表匯總到一張表。

一張表中有多個 sheet,每一個 sheet 的名稱是每張表格的文件名。

如果手動合並,往往需要花不少時間。如有 100 張表格的話,那樣效率就太低了,於是弄了一個腳本來完成這個任務。

我找了一些測試數據,放在了 abc 文件夾下,abc 隨便取的,只是一個保存數據的文件夾而已,在這個文件夾中只保存表格數據,其他的不要保存:

圖片

 

然后需要把這些表格數據合並為同一張表格,里面有多個 sheet,每一個 sheet 的數據為每一張表的數據且命名為原始數據表的名稱。

 

腳本如下:

import pandas as pd
import os
result = pd.ExcelWriter('result.xlsx') #結果保存路徑
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)  #讀取文件內容
    sheet_name = i[:len(i)-4]  #獲取文件名
    content.to_excel(result, sheet_name, index=False) # 寫入同一個表的不同sheet
result.save()

 

上面的代碼比較容易看懂,都有注釋。先設置輸出結果文件路徑及名稱,再獲得數據源的所在的路徑下的所有數據表的表名,循環讀取每一個文件,設置 sheet 名字,設置為多個 sheet,最后保存。

運行后得到 result.xlsx 文件:

圖片

 

打開查看結果,可以看到有多個 sheet,且每一張 sheet 的名稱都為原始數據表的名稱:

圖片

 

到這里,這一個小需求就完成了。

注意:自己測試的時候,表格第一列第一行不能為空,否則會報錯。

在這里還是要推薦下我自己建的Python學習群:609616831,群里都是學Python的,如果你想學或者正在學習Python ,歡迎你加入,大家都是軟件開發黨,不定期分享干貨(只有Python軟件開發相關的),包括我自己整理的一份2020最新的Python進階資料和零基礎教學,歡迎進階中和對Python感興趣的小伙伴加入!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM