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.mzph.cn/news/895265.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

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类显示自定义弹出框…

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…

自主项目面试点总结

1、许苑–OJ判题系统 技术栈:Spring BootSpring Cloud AlibabaRedisMybatisMQDocker 项目地址: https://github.com/xuyuan-upward/xyoj-backend-microservice 1.1、项目介绍: 一个基于微服务的OJ系统,具备能够根据管理员预设的题目用例对用户提交的代…

【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对卵,每对卵要过两个月长成成虫…

单片机上SPI和IIC的区别

SPI(Serial Peripheral Interface)和IC(Inter-Integrated Circuit)是两种常用的嵌入式外设通信协议,它们各有优缺点,适用于不同的场景。以下是它们的详细对比: — 1. 基本概念 SPI&#xff0…

SQL Server安装流程

SQL Server 2022在安全性、可用性和性能方面不断创新,是现在最支持Azure的SQL Server版本。 SQL Server发展史 SQL Server的历史始于1989年,当时是由微软与Sybase合作的产品,旨在为Windows NT操作系统提供一个高性能的数据库解决方案。随着…

从零开始认识大语言模型(LLM)

“AI小美好——聚焦科技、商业、职场。前沿资讯,实用干货,邂逅更美好的自己!” 在当今数字化时代,语言不仅是人类交流的工具,更是信息传递的核心。随着人工智能技术的飞速发展,大语言模型逐渐走进了我们的…

安装OpenJDK21(linux、macos)

文章目录 安装OpenJDK21java21linux下安装配置mac下安装 安装OpenJDK21 java21 封神!Java 21正式发布了,迎来了史诗级新特性,堪称版本最强!!! 视频链接:https://www.bilibili.com/video/BV1E8…

基于Java的自助多张图片合成拼接实战

目录 前言 一、图片合成需求描述 二、图片合成设计与实现 1、编程语言 2、基础数据准备 3、图片合成流程 4、图片合成实现 三、总结 前言 在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用。从社交媒体到电子商务,从在线教育到虚拟…

计算机网络结课设计:通过思科Cisco进行中小型校园网搭建

上学期计算机网络课程的结课设计是使用思科模拟器搭建一个中小型校园网,当时花了几天时间查阅相关博客总算是做出来了,在验收后一直没管,在寒假想起来了简单分享一下,希望可以给有需求的小伙伴一些帮助 目录 一、设计要求 二、…

在npm上传属于自己的包

最近在整理代码,上传到npm方便使用,所以学习了如何在npm发布一个包,整理写成一篇文章和大家一起交流。 1、注册npm账号 npm | Home 2、确保是登录状态 (在包目录下,终端执行 npm login) 按enter键自动打开页面&…

物联网(IoT)详解

物联网(IoT)详解 1. IoT定义简介2. IoT工作原理3. IoT关键技术4. 物联网与互联网区别5. IoT使用场景6. 开源物联网平台7. 参考资料 1. IoT定义简介 首先第一个问题,什么是物联网(IoT)? 物联网(英文&#…