【openpyxl】 工作表操作指南:新建、复制、删除工作表
1. 引言openpyxl 是 Python 中用于读写 Excel 文件.xlsx/.xlsm的强大库。在实际数据处理中我们经常需要对工作簿中的工作表进行管理包括新建、复制和删除等操作。本文将详细介绍如何使用 openpyxl 完成这些常见任务。2. 准备工作首先确保已安装 openpyxlpip install openpyxl导入必要的模块from openpyxl import Workbook, load_workbook3. 新建工作表3.1 创建新工作簿时自动生成的工作表使用Workbook()创建新工作簿时默认会包含一个名为 Sheet 的工作表# 创建新工作簿 wb Workbook() 获取默认工作表第一个工作表 ws wb.active print(ws.title) # 输出Sheet3.2 添加新的工作表使用create_sheet()方法添加新工作表# 在末尾添加新工作表 ws1 wb.create_sheet(月度数据) # 默认添加到末尾 在指定位置添加新工作表 ws2 wb.create_sheet(季度汇总, 0) # 插入到第一个位置索引0 查看所有工作表名称 print(wb.sheetnames) # 输出[季度汇总, Sheet, 月度数据]4. 复制工作表4.1 在同一工作簿内复制使用copy_worksheet()方法复制工作表# 复制工作表 source_ws wb[月度数据] # 获取源工作表 copied_ws wb.copy_worksheet(source_ws) 复制后的工作表名称会自动添加 (1) 后缀 print(copied_ws.title) # 输出月度数据 (1) 可以重命名复制的工作表 copied_ws.title 月度数据_备份4.2 复制时的注意事项复制操作会复制单元格内容、格式、公式等图表、图片等对象可能无法完全复制工作表间公式引用可能需要手动调整5. 删除工作表5.1 删除指定工作表使用remove()方法删除工作表# 删除工作表 ws_to_delete wb[月度数据_备份] wb.remove(ws_to_delete) 或者通过工作表名称删除 del wb[季度汇总] 验证删除结果 print(wb.sheetnames) # 输出[Sheet, 月度数据]5.2 删除时的注意事项不能删除所有工作表工作簿必须至少保留一个工作表删除操作不可撤销建议先备份重要数据删除后工作表索引会自动调整6. 综合示例下面是一个完整的示例演示如何创建、复制和删除工作表from openpyxl import Workbook 1. 创建新工作簿 wb Workbook() print(初始工作表:, wb.sheetnames) # [Sheet] 2. 添加新工作表 sales_ws wb.create_sheet(销售数据) expense_ws wb.create_sheet(支出数据, 0) # 插入到开头 print(添加后:, wb.sheetnames) # [支出数据, Sheet, 销售数据] 3. 复制工作表 backup_ws wb.copy_worksheet(sales_ws) backup_ws.title 销售数据_备份 print(复制后:, wb.sheetnames) # [支出数据, Sheet, 销售数据, 销售数据_备份] 4. 删除工作表 del wb[支出数据] print(删除后:, wb.sheetnames) # [Sheet, 销售数据, 销售数据_备份] 5. 保存工作簿 wb.save(example.xlsx)7. 常见问题与解决方案7.1 工作表名称重复openpyxl 不允许同名工作表添加或重命名时需确保名称唯一# 检查工作表名称是否已存在 def add_sheet_safely(wb, sheet_name): if sheet_name in wb.sheetnames: # 添加后缀确保唯一性 i 1 while f{sheet_name}_{i} in wb.sheetnames: i 1 sheet_name f{sheet_name}_{i} return wb.create_sheet(sheet_name)/code/pre 7.2 批量操作工作表 批量创建多个工作表 # 批量创建季度工作表 quarters [Q1, Q2, Q3, Q4] for quarter in quarters: wb.create_sheet(f销售_{quarter}) 7.3 保存和加载工作簿 操作完成后记得保存 # 保存到文件 wb.save(data.xlsx) 加载已存在的工作簿 wb2 load_workbook(data.xlsx) print(加载的工作表:, wb2.sheetnames) 8. 总结 openpyxl 提供了简洁的 API 来管理工作表 新建工作表使用 create_sheet() 方法 复制工作表使用 copy_worksheet() 方法 删除工作表使用 remove() 方法或 del 语句 掌握这些基本操作后你可以更灵活地处理 Excel 文件满足各种数据处理需求。建议在实际使用中结合异常处理确保程序的健壮性。

相关新闻

乡镇医院挂号预约系统任务书

乡镇医院挂号预约系统任务书

一、项目背景 在基层医疗快速发展的背景下,乡镇医院作为乡村医疗卫生服务的核心机构,承担着辖区居民常见病诊疗、基础体检、慢病复查等医疗工作。当前多数乡镇医院仍沿用传统现场排队挂号、人工登记的就诊模式,存在诸多弊端。一方面&#xff…

2026/7/22 1:56:34 阅读更多 →
比亚迪秦EV高压互锁系统原理与故障诊断指南

比亚迪秦EV高压互锁系统原理与故障诊断指南

1. 比亚迪秦EV高压互锁系统概述高压互锁系统(High Voltage Interlock Loop,简称HVIL)是纯电动车型高压安全架构的核心组成部分。在比亚迪秦EV这款主力电动车型上,这套系统通过实时监测高压回路完整性,为车辆提供了&quo…

2026/7/22 1:55:33 阅读更多 →
大数据Hadoop运维应用实践——通过Ambari自动化部署hadoop集群(下)

大数据Hadoop运维应用实践——通过Ambari自动化部署hadoop集群(下)

大数据Hadoop运维应用实践——通过Ambari自动化部署hadoop集群(上)https://blog.csdn.net/xiaochenXIHUA/article/details/163052607一、在Ambari Web管理界面创建hadoop集群 在浏览器打开Ambari Web管理界面登录,然后点击左侧的【Cluster In…

2026/7/22 1:55:33 阅读更多 →

最新新闻

ARM day5

ARM day5

1. 什么是 GIC?🔸 GIC 全称GIC(Generic Interrupt Controller,通用中断控制器),是 ARM 公司专门为 Cortex-A 系列 内核设计的一款集中式中断控制器。🔸 为什么需要 GIC?随着 SoC&…

2026/7/22 4:34:31 阅读更多 →
C++自定义内存管理:资源受限环境下的固定大小内存池实现

C++自定义内存管理:资源受限环境下的固定大小内存池实现

1. 项目概述:为什么要在资源受限环境中自定义内存管理?在嵌入式系统、物联网设备、游戏引擎或者高频交易系统里工作过的C开发者,对“内存”这个词的感受,和写桌面应用或Web后端的同行截然不同。在这些资源受限的环境里&#xff0c…

2026/7/22 4:34:31 阅读更多 →
Cocos Creator 2.x安卓打包全流程:从环境配置到APK发布实战

Cocos Creator 2.x安卓打包全流程:从环境配置到APK发布实战

1. 项目概述与核心价值最近在整理过往项目资料时,翻到了一个用Cocos Creator 2.4.15版本开发的棋牌游戏源码。这算是一个比较有“情怀”的项目了,它不像现在市面上那些动辄3D、特效拉满的重度游戏,而是专注于还原经典棋牌玩法,比如…

2026/7/22 4:34:31 阅读更多 →
Unity 3D毕设选题指南:六大前沿方向与实战避坑策略

Unity 3D毕设选题指南:六大前沿方向与实战避坑策略

1. 项目概述:为什么Unity 3D是计算机专业毕设的“黄金赛道”?又到了一年一度让计算机专业同学“头秃”的毕设选题季。看着身边同学有的在卷算法,有的在搞Web应用,你是不是也在纠结:我的毕设到底该做什么,才…

2026/7/22 4:34:31 阅读更多 →
【开题神器】专业级一键生成论文工具:研究框架、文献综述一键搭建

【开题神器】专业级一键生成论文工具:研究框架、文献综述一键搭建

每到开题季,无数本硕学子都会陷入同款困境:选题无思路、研究框架逻辑混乱、翻阅上百篇文献仍写不出合格综述、参考文献格式反复出错、熬夜搭建结构却被导师全盘打回。传统手工梳理文献、徒手搭建研究框架的模式耗时耗力,稍有疏漏就会延误开题…

2026/7/22 4:34:31 阅读更多 →
C++17 std::clamp未定义问题:从编译器支持到跨版本兼容的完整解决方案

C++17 std::clamp未定义问题:从编译器支持到跨版本兼容的完整解决方案

1. 项目概述:当std::clamp突然“消失”在C项目里,尤其是那些需要处理数值范围、做数据清洗或者UI组件值绑定的场景,std::clamp函数简直是救星。它用一行代码std::clamp(value, min, max)就能优雅地把一个值限制在指定的最小值和最大值之间&am…

2026/7/22 4:33:31 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻