【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/9/9 17:59:20 阅读更多 →
比亚迪秦EV高压互锁系统原理与故障诊断指南

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

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

2026/9/13 13:59:40 阅读更多 →
大数据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/9/13 16:21:13 阅读更多 →

最新新闻

Pydantic AI ModelSettings 全解:跨提供商 LLM 请求参数、Tool Choice 与设置合并机制

Pydantic AI ModelSettings 全解:跨提供商 LLM 请求参数、Tool Choice 与设置合并机制

Pydantic AI ModelSettings 全解:跨提供商 LLM 请求参数、Tool Choice 与设置合并机制 【免费下载链接】pydantic-ai How Python does AI. Agents, realtime voice, image generation, embeddings. Every model, every interface, typed end to end. 项目地址: ht…

2026/9/13 22:04:33 阅读更多 →
DeepSeek Harness本地AI工作流配置与Agent开发指南

DeepSeek Harness本地AI工作流配置与Agent开发指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 22:04:33 阅读更多 →
Agent记忆系统三层架构设计与落地实践

Agent记忆系统三层架构设计与落地实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 22:04:33 阅读更多 →
一键关闭Defender并禁用Windows更新:组策略、注册表、批处理全攻略

一键关闭Defender并禁用Windows更新:组策略、注册表、批处理全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 22:04:33 阅读更多 →
国产大模型选型实战指南:Hy4、GLM、Kimi、DeepSeek四维对比

国产大模型选型实战指南:Hy4、GLM、Kimi、DeepSeek四维对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/13 22:04:33 阅读更多 →
Electrobun 桌面应用排错速查:从构建失败到恢复的完整路径

Electrobun 桌面应用排错速查:从构建失败到恢复的完整路径

Electrobun 桌面应用排错速查:从构建失败到恢复的完整路径 【免费下载链接】electrobun Build ultra fast, tiny, and cross-platform desktop apps with Typescript. 项目地址: https://gitcode.com/GitHub_Trending/el/electrobun Electrobun 的构建和测试…

2026/9/13 22:03:31 阅读更多 →

日新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/13 0:00:24 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/13 0:00:24 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/13 0:00:24 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/13 16:51:11 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/12 18:29:34 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/12 19:02:44 阅读更多 →