欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python高效合并Excel多Sheet工作表

 更新時(shí)間:2025年09月25日 10:01:55   作者:IT小本本  
在日常辦公中,我們經(jīng)常會(huì)遇到一個(gè)Excel文件里包含多個(gè)工作表的情況,下面小編就來和大家詳細(xì)介紹一下如何使用Python實(shí)現(xiàn)高效合并Excel多Sheet工作表吧

在日常辦公中,我們經(jīng)常會(huì)遇到一個(gè)Excel文件里包含多個(gè)工作表的情況,比如按日期、按部門分類的數(shù)據(jù)。如果要對(duì)這些數(shù)據(jù)進(jìn)行匯總分析,手動(dòng)復(fù)制粘貼不僅耗時(shí),還容易出現(xiàn)疏漏。

今天就給大家分享一個(gè)實(shí)用的Python代碼,能一鍵合并Excel中的所有工作表,讓數(shù)據(jù)處理效率大幅提升。

完整代碼

以下是實(shí)現(xiàn)該功能的完整代碼,大家可以直接復(fù)制使用:

import pandas as pd
import os

def merge_excel_sheets(excel_file_path, output_file_path=None):
    """
    讀取 Excel 文件中的所有 sheet 頁數(shù)據(jù)并匯總到一個(gè) DataFrame 中
    
    參數(shù):
        excel_file_path: Excel 文件路徑
        output_file_path: 輸出的 Excel 文件路徑,默認(rèn)為 None (不輸出到文件)
    
    返回:
        匯總后的 DataFrame
    """
    # 讀取 Excel 文件中的所有 sheet
    xls = pd.ExcelFile(excel_file_path)
    sheet_names = xls.sheet_names
    
    # 創(chuàng)建一個(gè)空的 DataFrame 列表,用于存儲(chǔ)每個(gè) sheet 的數(shù)據(jù)
    dfs = []
    
    # 遍歷每個(gè) sheet
    for sheet_name in sheet_names:
        # 讀取當(dāng)前 sheet 的數(shù)據(jù)
        df = pd.read_excel(excel_file_path, sheet_name=sheet_name)
        
        # 添加一列標(biāo)識(shí)數(shù)據(jù)來源的 sheet 名稱
        df['Sheet_Name'] = sheet_name
        
        # 將當(dāng)前 sheet 的 DataFrame 添加到列表中
        dfs.append(df)
    
    # 將所有 DataFrame 合并成一個(gè)
    merged_df = pd.concat(dfs, ignore_index=True)
    
    # 如果指定了輸出路徑,則保存到文件
    if output_file_path:
        merged_df.to_excel(output_file_path, index=False)
        print(f"已將匯總數(shù)據(jù)保存到: {output_file_path}")
    
    return merged_df

# 使用示例
if __name__ == "__main__":
    # 替換為你的 Excel 文件路徑
    input_file = "范例1.xlsx"
    output_file = "merged_data.xlsx"
    
    # 確保輸入文件存在
    if os.path.exists(input_file):
        # 匯總數(shù)據(jù)并保存到新文件
        result_df = merge_excel_sheets(input_file, output_file)
        
        # 打印匯總結(jié)果的前幾行
        print("匯總數(shù)據(jù)預(yù)覽:")
        print(result_df.head())
        
        # 打印每個(gè) sheet 的行數(shù)統(tǒng)計(jì)
        print("\n各 Sheet 數(shù)據(jù)行數(shù):")
        sheet_counts = result_df['Sheet_Name'].value_counts()
        for sheet, count in sheet_counts.items():
            print(f"{sheet}: {count} 行")
            
        print(f"\n總計(jì): {len(result_df)} 行數(shù)據(jù)")
    else:
        print(f"文件不存在: {input_file}")

代碼解析

1. 依賴庫導(dǎo)入

代碼開頭導(dǎo)入了兩個(gè)必要的庫:

  • pandas:強(qiáng)大的數(shù)據(jù)處理庫,用于讀取Excel文件和處理數(shù)據(jù)
  • os:用于進(jìn)行文件路徑相關(guān)的操作,這里主要用來檢查輸入文件是否存在

2. 核心函數(shù):merge_excel_sheets

這是實(shí)現(xiàn)數(shù)據(jù)合并的核心函數(shù),我們來逐步解析其工作流程:

步驟1:獲取所有工作表名稱xls = pd.ExcelFile(excel_file_path)

sheet_names = xls.sheet_names通過pd.ExcelFile方法讀取Excel文件,再通過sheet_names屬性獲取該文件中所有工作表的名稱,為后續(xù)遍歷做準(zhǔn)備。

步驟2:遍歷處理每個(gè)工作表for sheet_name in sheet_names:

    df = pd.read_excel(excel_file_path, sheet_name=sheet_name)
    df['Sheet_Name'] = sheet_name
    dfs.append(df)- 循環(huán)遍歷每個(gè)工作表名稱,使用`pd.read_excel`讀取對(duì)應(yīng)工作表的數(shù)據(jù),得到一個(gè)DataFrame
  • 為當(dāng)前DataFrame添加一個(gè)Sheet_Name列,記錄該數(shù)據(jù)來自哪個(gè)工作表,方便后續(xù)溯源
  • 將處理好的DataFrame添加到列表dfs中暫存

步驟3:合并所有數(shù)據(jù)

merged_df = pd.concat(dfs, ignore_index=True)

使用`pd.concat`方法將列表中所有的DataFrame合并成一個(gè),`ignore_index=True`表示合并后重新生成索引,避免索引重復(fù)。

步驟4:保存合并結(jié)果(可選)if output_file_path:

    merged_df.to_excel(output_file_path, index=False)
    print(f"已將匯總數(shù)據(jù)保存到: {output_file_path}")

如果指定了輸出文件路徑,就將合并后的DataFrame保存為Excel文件,`index=False`表示不保存索引列。

3. 使用示例

代碼最后部分是使用示例,主要做了這些事:

  • 定義輸入文件和輸出文件的路徑
  • 檢查輸入文件是否存在,避免報(bào)錯(cuò)
  • 調(diào)用合并函數(shù)進(jìn)行數(shù)據(jù)處理
  • 輸出合并結(jié)果的預(yù)覽、各工作表數(shù)據(jù)行數(shù)統(tǒng)計(jì)和總數(shù)據(jù)量

如何使用該代碼

1.安裝依賴庫:首先確保安裝了pandas庫,如果沒有安裝,可運(yùn)行以下命令:

pip install pandas openpyxl

openpyxl是pandas處理xlsx格式文件所需的依賴)

2.準(zhǔn)備Excel文件:將需要合并的Excel文件準(zhǔn)備好,記住其路徑。

3.修改文件路徑:在代碼的if __name__ == "__main__":部分,將input_fileoutput_file替換為實(shí)際的文件路徑,例如:

input_file = "C:/data/各部門數(shù)據(jù).xlsx"
output_file = "C:/data/全公司數(shù)據(jù)匯總.xlsx"

4.運(yùn)行代碼:執(zhí)行Python腳本,等待程序運(yùn)行完成。運(yùn)行成功后,會(huì)在控制臺(tái)輸出匯總數(shù)據(jù)預(yù)覽和統(tǒng)計(jì)信息,同時(shí)在指定路徑生成合并后的Excel文件。

有了這個(gè)代碼,再也不用手動(dòng)一個(gè)個(gè)復(fù)制粘貼工作表數(shù)據(jù)了,尤其適合需要經(jīng)常處理多工作表Excel文件的辦公人士。

到此這篇關(guān)于Python高效合并Excel多Sheet工作表的文章就介紹到這了,更多相關(guān)Python合并Excel工作表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python集合能干嗎

    python集合能干嗎

    在本篇內(nèi)容中小編給各位分享了關(guān)于python集合的作用以及相關(guān)實(shí)例內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-07-07
  • python多線程抓取天涯帖子內(nèi)容示例

    python多線程抓取天涯帖子內(nèi)容示例

    這篇文章主要介紹了python多線程抓取天涯帖子內(nèi)容示例,需要的朋友可以參考下
    2014-04-04
  • Python實(shí)現(xiàn)各種郵件發(fā)送

    Python實(shí)現(xiàn)各種郵件發(fā)送

    這篇文章主要介紹了Python實(shí)現(xiàn)各種郵件發(fā)送,Python內(nèi)置對(duì)SMTP的支持,可以發(fā)送純文本郵件、HTML郵件以及帶附件的郵件,下文詳細(xì)實(shí)現(xiàn)過程需要的小伙伴可以參考一下
    2022-05-05
  • Python列表元素刪除和remove()方法詳解

    Python列表元素刪除和remove()方法詳解

    這篇文章主要給大家介紹了關(guān)于Python列表元素刪除和remove()方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python爬蟲使用實(shí)例wallpaper問題記錄

    Python爬蟲使用實(shí)例wallpaper問題記錄

    本文介紹解決中文亂碼的方法,以及Python爬蟲處理數(shù)據(jù)、圖片URL的技巧,包括使用正則表達(dá)式處理字符串、URL替換等,還涉及單線程與多線程的應(yīng)用場景,如電腦壁紙和手機(jī)壁紙爬取,適合進(jìn)行Web數(shù)據(jù)抓取和處理的開發(fā)者參考
    2024-09-09
  • Python繪圖Turtle庫的安裝問題解決

    Python繪圖Turtle庫的安裝問題解決

    這篇文章主要介紹了Python繪圖中解決Turtle的安裝問題示例分析,也遇到過相同問題的同學(xué)可以借鑒參考下,希望能夠解決你的問題
    2021-10-10
  • Python矩陣常見運(yùn)算操作實(shí)例總結(jié)

    Python矩陣常見運(yùn)算操作實(shí)例總結(jié)

    這篇文章主要介紹了Python矩陣常見運(yùn)算操作,結(jié)合實(shí)例形式總結(jié)分析了Python矩陣的創(chuàng)建以及相乘、求逆、轉(zhuǎn)置等相關(guān)操作實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-09-09
  • Python+Django+MySQL實(shí)現(xiàn)基于Web版的增刪改查的示例代碼

    Python+Django+MySQL實(shí)現(xiàn)基于Web版的增刪改查的示例代碼

    這篇文章主要介紹了Python+Django+MySQL實(shí)現(xiàn)基于Web版的增刪改查的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • python的移位操作實(shí)現(xiàn)詳解

    python的移位操作實(shí)現(xiàn)詳解

    這篇文章主要介紹了ppython的移位操作實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python基于貪心算法解決背包問題示例

    Python基于貪心算法解決背包問題示例

    這篇文章主要介紹了Python基于貪心算法解決背包問題,簡單描述了貪心算法的概念、原理并結(jié)合實(shí)例形式分析了Python使用貪心算法解決背包問題的具體操作技巧,需要的朋友可以參考下
    2017-11-11

最新評(píng)論