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

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

Python開源自動(dòng)化工具Playwright安裝及介紹使用

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

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