Python實現將Sheet頁拆分成單獨的Excel文件
在日常的數據處理工作中,很多時候我們會遇到一個包含多個工作表(Sheet)的 Excel 文件,可能需要將每個工作表分別保存為獨立的 Excel 文件。手動進行這種操作非常繁瑣且易出錯,但借助 Python 中的 pandas 庫,我們可以非常方便地自動化這個過程。
在這篇博文中,我們將介紹如何使用 Python 將一個 Excel 文件中的每個工作表(Sheet)保存成單獨的 Excel 文件。
1. 使用 pandas 庫進行操作
除了 openpyxl,pandas 庫也可以用來處理 Excel 文件。pandas 提供了非常簡便的讀取和寫入 Excel 文件的方法,特別適合需要處理大量數據的場景。
安裝 pandas 和 openpyxl
pandas 需要依賴 openpyxl 來處理 .xlsx 格式的文件。如果沒有安裝,可以通過以下命令一起安裝:
pip install pandas openpyxl
代碼實現
使用 pandas 來實現將 Excel 文件中的每個工作表保存為單獨的文件的代碼如下:
import pandas as pd def split_excel_sheet(input_file): # 讀取 Excel 文件中的所有工作表 xls = pd.ExcelFile(input_file) # 遍歷每個工作表 for sheet_name in xls.sheet_names: # 讀取每個工作表的數據 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 獲取文件中的所有工作表名稱,并遍歷每個工作表。
讀取工作表數據:使用 pd.read_excel() 讀取每個工作表的數據,并將其轉換為 DataFrame 格式。
保存為單獨的 Excel 文件:通過 df.to_excel() 將每個工作表的數據保存為單獨的 Excel 文件,index=False 參數用于不保存行索引。
輸出示例
和 openpyxl 實現類似,運行上面的代碼后,程序會輸出每個工作表被保存為單獨 Excel 文件的消息。例如:
工作表 'Sheet1' 已保存為 Sheet1.xlsx
工作表 'Sheet2' 已保存為 Sheet2.xlsx
2. 總結
通過 Python 的 openpyxl 和 pandas 庫,我們可以輕松地將一個 Excel 文件中的每個工作表保存為單獨的 Excel 文件。pandas:適用于數據分析和處理,操作簡便,尤其在處理數據量較大的 Excel 文件時非常高效。
3.知識拓展
下面小編為大家整理了其他Python中Excel的相關操作,例如合并多個excel,感興趣的可以了解下
自動化辦公之合并多個excel
我們將利用 pandas 和 openpyxl 庫來完成這一任務。pandas 適用于數據的讀取和處理,而 openpyxl 適用于操作 Excel 文件。
安裝所需庫
首先,確保你已安裝了以下 Python 庫:
pip install pandas openpyxl
示例代碼
假設你有多個 Excel 文件,文件結構如下:
file1.xlsx
file2.xlsx
file3.xlsx
每個文件中都有一個工作表,包含相同結構的數據(列名相同)。
1. 導入庫
import pandas as pd import os
2. 讀取多個 Excel 文件并合并
我們使用 os 模塊來遍歷指定目錄下的所有 Excel 文件,并通過 pandas 讀取數據。將每個文件的數據合并到一個大的 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 用于存儲合并后的數據 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) # 合并數據 combined_df = pd.concat([combined_df, df], ignore_index=True) # 將合并后的數據保存到新的 Excel 文件 combined_df.to_excel(output_file, index=False) print(f"合并完成,結果已保存到: {output_file}")
3.調用函數并運行
調用上面的 merge_excel_files 函數,并傳入文件夾路徑和輸出文件路徑:
# 指定輸入文件夾路徑和輸出文件路徑 input_folder = 'path_to_your_excel_files' # 替換為你的文件夾路徑 output_file = 'merged_output.xlsx' # 輸出文件路徑 # 調用合并函數 merge_excel_files(input_folder, output_file)
代碼說明
獲取文件列表:通過 os.listdir 獲取指定目錄下的所有 .xlsx 文件。
讀取和合并數據:利用 pandas.read_excel 讀取每個 Excel 文件的數據,并使用 pandas.concat 方法將數據合并到一個大的 DataFrame 中。ignore_index=True 確保合并后的數據不會重復索引。
保存合并結果:最后,將合并后的數據保存到一個新的 Excel 文件中,使用 to_excel 方法。
執(zhí)行結果
執(zhí)行上述代碼后,你會看到如下輸出:
正在處理文件: path_to_your_excel_files/file1.xlsx
正在處理文件: path_to_your_excel_files/file2.xlsx
正在處理文件: path_to_your_excel_files/file3.xlsx
合并完成,結果已保存到: merged_output.xlsx
合并后的數據將被保存到 merged_output.xlsx
文件中。
到此這篇關于Python實現將Sheet頁拆分成單獨的Excel文件的文章就介紹到這了,更多相關Python Sheet頁拆分成單獨Excel內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在python環(huán)境下運用kafka對數據進行實時傳輸的方法
今天小編就為大家分享一篇在python環(huán)境下運用kafka對數據進行實時傳輸的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12安裝ElasticSearch搜索工具并配置Python驅動的方法
這篇文章主要介紹了安裝ElasticSearch搜索工具并配置Python驅動的方法,文中還介紹了其與Kibana數據顯示客戶端的配合使用,需要的朋友可以參考下2015-12-12Python開源自動化工具Playwright安裝及介紹使用
playwright-python是一個強大的Python庫,僅用一個API即可自動執(zhí)行Chromium、Firefox、WebKit等主流瀏覽器自動化操作,本文就詳細的介紹一下如何使用,感興趣的可以了解一下2021-12-12