Python實(shí)現(xiàn)將Sheet頁(yè)拆分成單獨(dú)的Excel文件
在日常的數(shù)據(jù)處理工作中,很多時(shí)候我們會(huì)遇到一個(gè)包含多個(gè)工作表(Sheet)的 Excel 文件,可能需要將每個(gè)工作表分別保存為獨(dú)立的 Excel 文件。手動(dòng)進(jìn)行這種操作非常繁瑣且易出錯(cuò),但借助 Python 中的 pandas 庫(kù),我們可以非常方便地自動(dòng)化這個(gè)過(guò)程。
在這篇博文中,我們將介紹如何使用 Python 將一個(gè) Excel 文件中的每個(gè)工作表(Sheet)保存成單獨(dú)的 Excel 文件。
1. 使用 pandas 庫(kù)進(jìn)行操作
除了 openpyxl,pandas 庫(kù)也可以用來(lái)處理 Excel 文件。pandas 提供了非常簡(jiǎn)便的讀取和寫(xiě)入 Excel 文件的方法,特別適合需要處理大量數(shù)據(jù)的場(chǎng)景。
安裝 pandas 和 openpyxl
pandas 需要依賴(lài) openpyxl 來(lái)處理 .xlsx 格式的文件。如果沒(méi)有安裝,可以通過(guò)以下命令一起安裝:
pip install pandas openpyxl
代碼實(shí)現(xiàn)
使用 pandas 來(lái)實(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 文件:通過(guò) pd.ExcelFile(input_file) 讀取整個(gè) Excel 文件。
遍歷工作表:通過(guò) xls.sheet_names 獲取文件中的所有工作表名稱(chēng),并遍歷每個(gè)工作表。
讀取工作表數(shù)據(jù):使用 pd.read_excel() 讀取每個(gè)工作表的數(shù)據(jù),并將其轉(zhuǎn)換為 DataFrame 格式。
保存為單獨(dú)的 Excel 文件:通過(guò) df.to_excel() 將每個(gè)工作表的數(shù)據(jù)保存為單獨(dú)的 Excel 文件,index=False 參數(shù)用于不保存行索引。
輸出示例
和 openpyxl 實(shí)現(xiàn)類(lèi)似,運(yùn)行上面的代碼后,程序會(huì)輸出每個(gè)工作表被保存為單獨(dú) Excel 文件的消息。例如:
工作表 'Sheet1' 已保存為 Sheet1.xlsx
工作表 'Sheet2' 已保存為 Sheet2.xlsx
2. 總結(jié)
通過(guò) Python 的 openpyxl 和 pandas 庫(kù),我們可以輕松地將一個(gè) Excel 文件中的每個(gè)工作表保存為單獨(dú)的 Excel 文件。pandas:適用于數(shù)據(jù)分析和處理,操作簡(jiǎn)便,尤其在處理數(shù)據(jù)量較大的 Excel 文件時(shí)非常高效。
3.知識(shí)拓展
下面小編為大家整理了其他Python中Excel的相關(guān)操作,例如合并多個(gè)excel,感興趣的可以了解下
自動(dòng)化辦公之合并多個(gè)excel
我們將利用 pandas 和 openpyxl 庫(kù)來(lái)完成這一任務(wù)。pandas 適用于數(shù)據(jù)的讀取和處理,而 openpyxl 適用于操作 Excel 文件。
安裝所需庫(kù)
首先,確保你已安裝了以下 Python 庫(kù):
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)入庫(kù)
import pandas as pd import os
2. 讀取多個(gè) Excel 文件并合并
我們使用 os 模塊來(lái)遍歷指定目錄下的所有 Excel 文件,并通過(guò) 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)
代碼說(shuō)明
獲取文件列表:通過(guò) 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頁(yè)拆分成單獨(dú)的Excel文件的文章就介紹到這了,更多相關(guān)Python Sheet頁(yè)拆分成單獨(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開(kāi)源自動(dòng)化工具Playwright安裝及介紹使用
Python3.7 + Yolo3實(shí)現(xiàn)識(shí)別語(yǔ)音播報(bào)功能
Python爬蟲(chóng)獲取圖片并下載保存至本地的實(shí)例
Python中JSON數(shù)據(jù)的相互轉(zhuǎn)化詳解
JSON 本質(zhì)是一個(gè)帶有特定格式的字符串,需要的朋友可以參考下

