Python自動化辦公之Excel拆分

在日常辦公中,我們經常需要將包含多個Sheet頁的Excel文件拆分成多個獨立的Excel文件。例如,在發送Excel表給各部門確認時,出于控制知悉范圍最小等保密性考慮,每個部門只需要查看和確認自己部門對應的Sheet頁。手動拆分Excel文件非常繁瑣耗時,為了提高效率,我們可以使用Python編寫一個自動化小工具,批量拆分Excel文件中的每個Sheet頁為獨立的Excel文件。

本文將分享如何使用Python實現批量Excel拆分的功能,并提供詳細的代碼解釋。

1. 需求分析

  1. 保持原始Sheet頁格式

2. 安裝依賴庫

在開始之前,我們需要安裝一些必要的Python庫。我們將使用pywin32庫來操作Excel文件。你可以通過以下命令安裝:

pip install pywin32

3. 代碼實現

以下是完整的Python代碼,用于批量拆分Excel文件中的每個Sheet頁為獨立的Excel文件。代碼中包含了詳細的中文注釋,方便理解。

import os
import shutil
import win32com.client
from tqdm import tqdmdef sheet2excel(input_excel_path, output_path):"""將Excel文件中的每個Sheet頁拆分為獨立的Excel文件:param input_excel_path: 輸入的Excel文件路徑:param output_path: 輸出的文件夾路徑"""# 獲取當前腳本所在的目錄parent = os.path.dirname(os.path.realpath(__file__))# 初始化Excel應用程序excel = win32com.client.Dispatch("Excel.Application")excel.Visible = False  # 不顯示Excel界面# 輸出文件夾存在則刪除重新創建output_dir_path = os.path.join(parent, output_path)if os.path.exists(output_dir_path):shutil.rmtree(output_dir_path)os.makedirs(output_dir_path)try:# 打開Excel文件wb = excel.Workbooks.Open(os.path.join(parent, input_excel_path))# 遍歷每個Sheet頁for sheet in tqdm(wb.Sheets, desc="EXCEL拆分"):# 復制當前Sheet頁到一個新的工作簿sheet.Copy()# 保存新的工作簿為獨立的Excel文件excel.ActiveWorkbook.SaveAs(os.path.join(output_dir_path, f"{sheet.Name}.xlsx"))# 關閉新的工作簿excel.ActiveWorkbook.Close()# 關閉原始工作簿wb.Close()finally:# 退出Excel應用程序excel.Quit()if __name__ == "__main__":# 示例:拆分當前目錄下的example.xlsx文件,輸出到output文件夾sheet2excel("example.xlsx", "output")

3. 代碼解釋

  • win32com.client.Dispatch("Excel.Application"): 初始化Excel應用程序對象,用于操作Excel文件。

  • excel.Visible = False: 設置Excel應用程序不可見,避免在后臺打開Excel界面。

  • shutil.rmtree(output_dir_path): 如果輸出文件夾已存在,則刪除該文件夾及其內容。

  • os.makedirs(output_dir_path): 創建輸出文件夾。

  • wb = excel.Workbooks.Open(...): 打開指定的Excel文件。

  • sheet.Copy(): 復制當前Sheet頁到一個新的工作簿。

  • excel.ActiveWorkbook.SaveAs(...): 將新的工作簿保存為獨立的Excel文件。

  • excel.ActiveWorkbook.Close(): 關閉新的工作簿。

  • wb.Close(): 關閉原始工作簿。

  • excel.Quit(): 退出Excel應用程序。

4. 使用示例

假設我們有一個名為example.xlsx的Excel文件,其中包含三個Sheet頁:Sheet1Sheet2Sheet3。我們可以通過以下代碼將每個Sheet頁拆分為獨立的Excel文件,并保存到output文件夾中:

if __name__ == "__main__":sheet2excel("example.xlsx", "output")

運行后,output文件夾中將生成三個獨立的Excel文件:Sheet1.xlsxSheet2.xlsxSheet3.xlsx

總結

通過本文介紹的Python代碼,我們可以輕松實現批量拆分Excel文件的功能。這種方法不僅提高了工作效率,還減少了手動操作帶來的錯誤風險。希望本文對你有所幫助,歡迎在評論區分享你的使用體驗和改進建議。

如果你對其他自動化辦公場景感興趣,歡迎關注我的專欄,后續將分享更多實用的Python辦公自動化技巧。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895265.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895265.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895265.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【CXX-Qt】1.1 Rust中的QObjects

本文涉及到了使用CXX-Qt將Rust、C和QML集成到Qt應用程序中的各個方面。下面,我將提供一個簡單的示例,演示如何使用CXX-Qt來創建一個Rust結構體并將其作為QObject子類暴露給C和QML。 一、設置CXX-Qt環境 首先,確保您已經安裝了Rust、CXX和CX…

Conda命令整理

Conda 是一個功能強大的包和環境管理工具,廣泛用于 Python 開發中。除了基本的包和環境管理功能外,Conda 還提供了許多高級用法和技巧,幫助用戶更高效地管理和維護 Python 環境。 1. 管理 Conda 本身 命令描述示例conda --version查看 Cond…

C++模擬實現AVL樹

目錄 1.文章概括 2.AVL樹概念 3.AVL樹的性質 4.AVL樹的插入 5.旋轉控制 1.左單旋 2. 右單旋 3.左右雙旋 4.右左雙旋 6.全部代碼 1.文章概括 本文適合理解平衡二叉樹的讀者閱讀,因為AVL樹是平衡二叉樹的一種優化,其大部分實現邏輯與平衡二叉樹是…

opc da 服務器數據 轉 EtherCAT項目案例

目錄 1 案例說明 2 VFBOX網關工作原理 3 應用條件 4 查看OPC DA服務器的相關參數 5 配置網關采集opc da數據 6 啟動EtherCAT從站轉發采集的數據 7 在服務器上運行仰科OPC DA采集軟件 8 案例總結 1 案例說明 在OPC DA服務器上運行OPC DA client軟件查看OPC DA服務器的相…

實驗9 基于WebGoat平臺的SQL注入攻擊

實驗9 基于WebGoat平臺的SQL注入攻擊 1.實驗目的 熟悉WebGoat平臺,在該平臺上實現SQL注入攻擊。 2.實驗內容 (1)下載webgoat-server-8.2.2.jar。 (2)搭建java環境。 (3)運行webgoat。 &#xf…

StochSync:可在任意空間中生成360°全景圖和3D網格紋理

StochSync方法可以用于在任意空間中生成圖像,尤其是360全景圖和3D網格紋理。該方法利用了預訓練的圖像擴散模型,以實現零-shot生成,消除了對新數據收集和單獨訓練生成模型的需求。StochSync 結合了 Diffusion Synchronization(DS&…

研發管理知識

定義 研發管理是對研發活動進行有效的計劃、組織、領導和控制的過程,旨在通過合理配置資源、協調團隊工作、監控項目進度和質量等,確保研發項目能夠按時、按質、按量完成,實現企業的技術創新和產品升級目標,增強企業的核心競爭力。…

HarmonyOS 5.0應用開發——全局自定義彈出框openCustomDialog

【高心星出品】 文章目錄 全局自定義彈出框openCustomDialog案例開發步驟完整代碼 全局自定義彈出框openCustomDialog CustomDialog是自定義彈出框,可用于廣告、中獎、警告、軟件更新等與用戶交互響應操作。開發者可以通過CustomDialogController類顯示自定義彈出框…

AOS安裝及操作演示

文章目錄 一、安裝node1.1 在 macOS 上管理 Node版本1.1.1 安裝 nvm1.1.2 驗證 nvm 是否安裝成功1.1.3 使用 nvm 安裝/切換 Node.js 版本1.1.4 卸載 Node.js 版本 1.2 在 windows 上管理 Node版本1.2.1 安裝 nvm-windows1.2.2 安裝 Node.js 版本1.2.3 切換 Node.js 版本1.2.4 卸…

DeepSeek模型R1服務器繁忙,怎么解決?

在當今科技飛速發展的時代,人工智能領域不斷涌現出令人矚目的創新成果,其中DeepSeek模型無疑成為了眾多關注焦點。它憑借著先進的技術和卓越的性能,在行業內掀起了一股熱潮,吸引了無數目光。然而,如同許多前沿技術在發…

AIGC-微頭條爆款文案創作智能體完整指令(DeepSeek,豆包,千問,Kimi,GPT)

Unity3D特效百例案例項目實戰源碼Android-Unity實戰問題匯總游戲腳本-輔助自動化Android控件全解手冊再戰Android系列Scratch編程案例軟考全系列Unity3D學習專欄藍橋系列AIGC(GPT、DeepSeek、豆包、千問、Kimi)??關于作者 專注于Android/Unity和各種游戲開發技巧,以及各種資…

[LLM面試題] 指示微調(Prompt-tuning)與 Prefix-tuning區別

一、提示調整(Prompt Tuning) Prompt Tuning是一種通過改變輸入提示語(input prompt)以獲得更優模型效果的技術。舉個例子,如果我們想將一條英語句子翻譯成德語,可以采用多種不同的方式向模型提問,如下圖所示&#xf…

CSS 性能優化全攻略:提升網站加載速度與流暢度

系列文章目錄 01-從零開始學CSS選擇器:屬性選擇器與偽類選擇器完全指南 02-避免樣式沖突:掌握CSS選擇器優先級與層疊規則的終極指南 03-如何精確掌控網頁布局?深入解析 CSS 樣式與盒模型 04-CSS 布局全面解析:從傳統浮動到現代 F…

自主項目面試點總結

1、許苑–OJ判題系統 技術棧:Spring BootSpring Cloud AlibabaRedisMybatisMQDocker 項目地址: https://github.com/xuyuan-upward/xyoj-backend-microservice 1.1、項目介紹: 一個基于微服務的OJ系統,具備能夠根據管理員預設的題目用例對用戶提交的代…

12.推薦系統的前沿技術

接下來我們將學習推薦系統的前沿技術。推薦系統是一個快速發展的領域,許多新技術和新方法不斷涌現,進一步提升了推薦系統的性能和效果。在這一課中,我們將介紹以下內容: 圖神經網絡(GNN)在推薦系統中的應用…

【py】python安裝教程(Windows系統,python3.13.2版本為例)

1.下載地址 官網:https://www.python.org/ 官網下載地址:https://www.python.org/downloads/ 2.64版本或者32位選擇 【Stable Releases】:穩定發布版本,指的是已經測試過的版本,相對穩定。 【Pre-releases】&#…

CEF132 編譯指南 MacOS 篇 - depot_tools 安裝與配置 (四)

1. 引言 在 CEF132(Chromium Embedded Framework)的編譯過程中,depot_tools 扮演著舉足輕重的角色。這套由 Chromium 項目精心打造的腳本和工具集,專門用于獲取、管理和更新 Chromium 及其相關項目(包括 CEF&#xff…

1312:【例3.4】昆蟲繁殖

1312:【例3.4】昆蟲繁殖 時間限制: 1000 ms 內存限制: 65536 KB 提交數:60386 通過數: 29787 【題目描述】 科學家在熱帶森林中發現了一種特殊的昆蟲,這種昆蟲的繁殖能力很強。每對成蟲過xx個月產yy對卵,每對卵要過兩個月長成成蟲…

Linux防火墻設置

目錄 Ubuntu防火墻(UFW)常用設置 1. 查看防火墻狀態 2. 開啟/關閉防火墻 3. 管理端口 4. 管理IP地址 5. 服務管理 CentOS防火墻(firewalld)常用設置 1. 查看防火墻狀態 2. 啟動/關閉防火墻 3. 設置開機啟動 4. 管理端口…

Git 日志查看與版本回溯

引言 在軟件開發的漫漫長路中,代碼就如同我們搭建軟件大廈的基石,而 Git 則是一位默默守護并精心管理這些基石的 “管家”。它不僅能記錄代碼的每一次變動,還提供了強大的日志查看和版本回溯功能,這些功能就像是給開發者配備了一…