Python實現(xiàn)將Sheet頁拆分成單獨的Excel文件
在日常的數(shù)據(jù)處理工作中,很多時候我們會遇到一個包含多個工作表(Sheet)的 Excel 文件,可能需要將每個工作表分別保存為獨立的 Excel 文件。手動進行這種操作非常繁瑣且易出錯,但借助 Python 中的 pandas 庫,我們可以非常方便地自動化這個過程。
在這篇博文中,我們將介紹如何使用 Python 將一個 Excel 文件中的每個工作表(Sheet)保存成單獨的 Excel 文件。
1. 使用 pandas 庫進行操作
除了 openpyxl,pandas 庫也可以用來處理 Excel 文件。pandas 提供了非常簡便的讀取和寫入 Excel 文件的方法,特別適合需要處理大量數(shù)據(jù)的場景。
安裝 pandas 和 openpyxl
pandas 需要依賴 openpyxl 來處理 .xlsx 格式的文件。如果沒有安裝,可以通過以下命令一起安裝:
pip install pandas openpyxl
代碼實現(xiàn)
使用 pandas 來實現(xiàn)將 Excel 文件中的每個工作表保存為單獨的文件的代碼如下:
import pandas as pd def split_excel_sheet(input_file): # 讀取 Excel 文件中的所有工作表 xls = pd.ExcelFile(input_file) # 遍歷每個工作表 for sheet_name in xls.sheet_names: # 讀取每個工作表的數(shù)據(jù) df = pd.read_excel(xls, sheet_name) # 保存每個工作表為單獨的 Excel 文件 new_file = f"{sheet_name}.xlsx" df.to_excel(new_file, index=False) print(f"工作表 '{sheet_name}' 已保存為 {new_file}") # 使用示例 input_file = '/path/to/example.xlsx' # 需要分割的 Excel 文件 split_excel_sheet(input_file)
代碼解析
讀取 Excel 文件:通過 pd.ExcelFile(input_file) 讀取整個 Excel 文件。
遍歷工作表:通過 xls.sheet_names 獲取文件中的所有工作表名稱,并遍歷每個工作表。
讀取工作表數(shù)據(jù):使用 pd.read_excel() 讀取每個工作表的數(shù)據(jù),并將其轉(zhuǎn)換為 DataFrame 格式。
保存為單獨的 Excel 文件:通過 df.to_excel() 將每個工作表的數(shù)據(jù)保存為單獨的 Excel 文件,index=False 參數(shù)用于不保存行索引。
輸出示例
和 openpyxl 實現(xiàn)類似,運行上面的代碼后,程序會輸出每個工作表被保存為單獨 Excel 文件的消息。例如:
工作表 'Sheet1' 已保存為 Sheet1.xlsx
工作表 'Sheet2' 已保存為 Sheet2.xlsx
2. 總結(jié)
通過 Python 的 openpyxl 和 pandas 庫,我們可以輕松地將一個 Excel 文件中的每個工作表保存為單獨的 Excel 文件。pandas:適用于數(shù)據(jù)分析和處理,操作簡便,尤其在處理數(shù)據(jù)量較大的 Excel 文件時非常高效。
3.知識拓展
下面小編為大家整理了其他Python中Excel的相關(guān)操作,例如合并多個excel,感興趣的可以了解下
自動化辦公之合并多個excel
我們將利用 pandas 和 openpyxl 庫來完成這一任務(wù)。pandas 適用于數(shù)據(jù)的讀取和處理,而 openpyxl 適用于操作 Excel 文件。
安裝所需庫
首先,確保你已安裝了以下 Python 庫:
pip install pandas openpyxl
示例代碼
假設(shè)你有多個 Excel 文件,文件結(jié)構(gòu)如下:
file1.xlsx
file2.xlsx
file3.xlsx
每個文件中都有一個工作表,包含相同結(jié)構(gòu)的數(shù)據(jù)(列名相同)。
1. 導(dǎo)入庫
import pandas as pd import os
2. 讀取多個 Excel 文件并合并
我們使用 os 模塊來遍歷指定目錄下的所有 Excel 文件,并通過 pandas 讀取數(shù)據(jù)。將每個文件的數(shù)據(jù)合并到一個大的 DataFrame 中。
def merge_excel_files(input_folder, output_file): # 獲取文件夾中的所有 Excel 文件 all_files = [f for f in os.listdir(input_folder) if f.endswith('.xlsx')] # 初始化一個空的 DataFrame 用于存儲合并后的數(shù)據(jù) combined_df = pd.DataFrame() # 遍歷所有文件,逐個讀取并合并 for file in all_files: file_path = os.path.join(input_folder, file) print(f"正在處理文件: {file_path}") # 讀取 Excel 文件 df = pd.read_excel(file_path) # 合并數(shù)據(jù) combined_df = pd.concat([combined_df, df], ignore_index=True) # 將合并后的數(shù)據(jù)保存到新的 Excel 文件 combined_df.to_excel(output_file, index=False) print(f"合并完成,結(jié)果已保存到: {output_file}")
3.調(diào)用函數(shù)并運行
調(diào)用上面的 merge_excel_files 函數(shù),并傳入文件夾路徑和輸出文件路徑:
# 指定輸入文件夾路徑和輸出文件路徑 input_folder = 'path_to_your_excel_files' # 替換為你的文件夾路徑 output_file = 'merged_output.xlsx' # 輸出文件路徑 # 調(diào)用合并函數(shù) merge_excel_files(input_folder, output_file)
代碼說明
獲取文件列表:通過 os.listdir 獲取指定目錄下的所有 .xlsx 文件。
讀取和合并數(shù)據(jù):利用 pandas.read_excel 讀取每個 Excel 文件的數(shù)據(jù),并使用 pandas.concat 方法將數(shù)據(jù)合并到一個大的 DataFrame 中。ignore_index=True 確保合并后的數(shù)據(jù)不會重復(fù)索引。
保存合并結(jié)果:最后,將合并后的數(shù)據(jù)保存到一個新的 Excel 文件中,使用 to_excel 方法。
執(zhí)行結(jié)果
執(zhí)行上述代碼后,你會看到如下輸出:
正在處理文件: path_to_your_excel_files/file1.xlsx
正在處理文件: path_to_your_excel_files/file2.xlsx
正在處理文件: path_to_your_excel_files/file3.xlsx
合并完成,結(jié)果已保存到: merged_output.xlsx
合并后的數(shù)據(jù)將被保存到 merged_output.xlsx
文件中。
到此這篇關(guān)于Python實現(xiàn)將Sheet頁拆分成單獨的Excel文件的文章就介紹到這了,更多相關(guān)Python Sheet頁拆分成單獨Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文帶你學(xué)會Python?Flask框架設(shè)置響應(yīng)頭
本篇博客我們將帶大家全面了解Python中Flask框架關(guān)于請求的相關(guān)設(shè)置的相關(guān)知識,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2023-01-01

安裝ElasticSearch搜索工具并配置Python驅(qū)動的方法

Python開源自動化工具Playwright安裝及介紹使用

Python3.7 + Yolo3實現(xiàn)識別語音播報功能

Python中JSON數(shù)據(jù)的相互轉(zhuǎn)化詳解
JSON 本質(zhì)是一個帶有特定格式的字符串,需要的朋友可以參考下