影刀RPA Excel的Sheet管理:新增、复制、重命名、删除
影刀RPA Excel的Sheet管理新增、复制、重命名、删除作者林焱一个Excel文件往往不止一个Sheet。采集数据按日期分Sheet存储、报表按部门分Sheet展示、原始数据和清洗结果放在不同Sheet里。很多新手只会操作固定的Sheet1一旦Sheet结构变了流程就崩了。这篇文章把Excel Sheet管理的各种操作讲全——新增、复制、重命名、删除、遍历让你能灵活管理多Sheet工作簿。一、获取Sheet列表1.1 获取所有Sheet名在做任何Sheet操作前先知道文件里有哪些Sheetimportopenpyxl wbopenpyxl.load_workbook(D:\\data\\product.xlsx)sheet_nameswb.sheetnames# 返回Sheet名列表# 例如[Sheet1, Sheet2, 销售数据]set_variable(sheet_names,sheet_names)或者用影刀指令【获取Excel Sheet列表】 文件路径D:\data\product.xlsx → 输出到变量 sheet_list1.2 判断Sheet是否存在wbopenpyxl.load_workbook(D:\\data\\product.xlsx)if销售数据inwb.sheetnames:print(Sheet存在)else:print(Sheet不存在)坑Sheet名大小写敏感销售数据和销售数据 末尾有空格是两个不同的Sheet名。从Excel复制Sheet名时注意不要带多余空格。二、新增Sheet2.1 基本新增wbopenpyxl.load_workbook(D:\\data\\product.xlsx)# 在末尾新增Sheetwswb.create_sheet(新Sheet)# 在指定位置新增index0表示最前面wswb.create_sheet(新Sheet,0)# 新增Sheet并填充表头ws[A1]商品名ws[B1]价格ws[C1]库存wb.save(D:\\data\\product.xlsx)2.2 新增Sheet并写入数据wbopenpyxl.load_workbook(D:\\data\\product.xlsx)wswb.create_sheet(今日数据)# 写入表头headers[商品名,价格,库存,状态]forcol,headerinenumerate(headers,1):ws.cell(row1,columncol,valueheader)# 写入数据dataget_variable(today_data)forrow_idx,row_datainenumerate(data,2):forcol_idx,valueinenumerate(row_data,1):ws.cell(rowrow_idx,columncol_idx,valuevalue)wb.save(D:\\data\\product.xlsx)2.3 按日期自动创建Sheet店群矩阵自动化突破运营极限每天采集的数据存到以日期命名的Sheet里fromdatetimeimportdatetimeimportopenpyxl todaydatetime.now().strftime(%Y%m%d)filepathD:\\data\\daily_collection.xlsx# 文件不存在则创建importosifnotos.path.exists(filepath):wbopenpyxl.Workbook()wb.remove(wb.active)# 删除默认Sheetelse:wbopenpyxl.load_workbook(filepath)# 如果今天的Sheet不存在创建它![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d631229a4be34a7f8771e46b071b34e8.png#pic_center)iftodaynotinwb.sheetnames:wswb.create_sheet(today)# 写入表头ws.append([序号,商品名,价格,采集时间])else:wswb[today]# 写入数据dataget_variable(collected_data)forrowindata:ws.append(row)wb.save(filepath)坑Sheet名不能包含特殊字符Excel Sheet名不能包含\ / ? * [ ] :这些字符。如果用日期做Sheet名用20260701格式而不是2026/07/01斜杠非法。坑Sheet名最多31个字符Excel限制Sheet名最多31个字符。超长名称会被截断或报错。三、复制Sheet3.1 在同一文件内复制wbopenpyxl.load_workbook(D:\\data\\product.xlsx)# 复制Sheet1为新SheetSheet1副本ws_sourcewb[Sheet1]ws_copywb.copy_worksheet(ws_source)ws_copy.titleSheet1副本wb.save(D:\\data\\product.xlsx)坑copy_worksheet只复制值和格式不复制图表和图片openpyxl的copy_worksheet只复制单元格的值、格式、公式。图表、图片、数据验证等不会被复制。如果需要完整复制用其他方案。3.2 跨文件复制Sheet把一个文件的Sheet复制到另一个文件importopenpyxlfromcopyimportcopy# 源文件和目标文件wb_sourceopenpyxl.load_workbook(D:\\data\\source.xlsx)wb_targetopenpyxl.load_workbook(D:\\data\\target.xlsx)ws_sourcewb_source[销售数据]ws_targetwb_target.create_sheet(销售数据)# 逐单元格复制值和格式forrowinws_source.iter_rows():forcellinrow:new_cellws_target.cell(rowcell.row,columncell.column,valuecell.value)ifcell.has_style:new_cell.fontcopy(cell.font)new_cell.bordercopy(cell.border)new_cell.fillcopy(cell.fill)new_cell.number_formatcell.number_format new_cell.alignmentcopy(cell.alignment)# 复制列宽forcol_letter,diminws_source.column_dimensions.items():ws_target.column_dimensions[col_letter].widthdim.width# 复制行高forrow_num,diminws_source.row_dimensions.items():ws_target.row_dimensions[row_num].heightdim.height wb_target.save(D:\\data\\target.xlsx)3.3 用pandas跨文件复制importpandasaspd# 读取源文件的Sheetdfpd.read_excel(D:\\data\\source.xlsx,sheet_name销售数据)# 写入目标文件的新Sheetwithpd.ExcelWriter(D:\\data\\target.xlsx,engineopenpyxl,modea)aswriter:df.to_excel(writer,sheet_name销售数据,indexFalse)用pandas更简洁但只复制数据不复制格式。四、重命名Sheet4.1 基本重命名wbopenpyxl.load_workbook(D:\\data\\product.xlsx)wswb[Sheet1]ws.title原始数据wb.save(D:\\data\\product.xlsx)4.2 批量重命名wbopenpyxl.load_workbook(D:\\data\\product.xlsx)# 给所有Sheet加前缀2026_forwsinwb.worksheets:ws.titlef2026_{ws.title}wb.save(D:\\data\\product.xlsx)坑重命名后引用失效重命名Sheet后之前代码中用旧Sheet名引用的地方需要全部更新。建议用变量管理Sheet名sheet_name原始数据wswb[sheet_name]# 一处定义到处引用五、删除Sheet5.1 基本删除wbopenpyxl.load_workbook(D:\\data\\product.xlsx)# 删除指定Sheetwswb[临时数据]wb.remove(ws)wb.save(D:\\data\\product.xlsx)5.2 删除多个Sheet# 删除所有以临时开头的Sheetsheets_to_delete[wsforwsinwb.worksheetsifws.title.startswith(临时)]forwsinsheets_to_delete:wb.remove(ws)wb.save(D:\\data\\product.xlsx)5.3 只保留指定Sheet# 只保留最终结果Sheet删除其他所有keep_sheet最终结果forwsinwb.worksheets:ifws.title!keep_sheet:wb.remove(ws)wb.save(D:\\data\\product.xlsx)坑删除最后一个Sheet报错Excel文件至少要有一个Sheet。如果你删除了所有Sheet保存会报错。删除前检查是否是最后一个Sheet。坑删除Sheet是不可逆的删除Sheet后保存文件数据就真的没了。删除前先备份文件或者把要删除的Sheet数据先复制到其他Sheet。六、遍历所有Sheet6.1 遍历读取数据wbopenpyxl.load_workbook(D:\\data\\multi_sheet.xlsx)all_data{}forwsinwb.worksheets:sheet_data[]forrowinws.iter_rows(values_onlyTrue):sheet_data.append(list(row))all_data[ws.title]sheet_data set_variable(all_data,all_data)6.2 用pandas读取所有Sheetimportpandasaspd# 读取所有Sheet返回字典{Sheet名: DataFrame}all_sheetspd.read_excel(D:\\data\\multi_sheet.xlsx,sheet_nameNone)[video(video-pgyUGAyv-1783502244785)(type-csdn)(url-https://live.csdn.net/v/embed/524992)(image-https://v-blog.csdnimg.cn/asset/b59aed2f01d4fe8583467562aaf4dcfd/cover/Cover0.jpg)(title-temu店群自动化报活动案例)]forsheet_name,dfinall_sheets.items():print(fSheet:{sheet_name}, 行数:{len(df)})# 处理每个Sheet的数据6.3 合并所有Sheet的数据importpandasaspd# 读取所有Sheetall_sheetspd.read_excel(D:\\data\\multi_sheet.xlsx,sheet_nameNone)# 合并所有Sheet假设结构相同df_allpd.concat(all_sheets.values(),ignore_indexTrue)# 写入新文件df_all.to_excel(D:\\data\\merged.xlsx,indexFalse)坑不同Sheet的列结构不一致合并时如果列结构不同列名不同、列数不同合并后会有大量NaN。合并前统一列名或用映射表对齐。七、Sheet的实用管理策略7.1 按月分Sheet存储fromdatetimeimportdatetimeimportopenpyxl monthdatetime.now().strftime(%Y-%m)filepathD:\\data\\monthly_report.xlsxwbopenpyxl.load_workbook(filepath)ifos.path.exists(filepath)elseopenpyxl.Workbook()ifmonthnotinwb.sheetnames:wswb.create_sheet(month)ws.append([日期,收入,支出,利润])else:wswb[month]# 追加今日数据ws.append([datetime.now().strftime(%Y-%m-%d),10000,6000,4000])wb.save(filepath)7.2 数据分类分Sheetimportpandasaspd dfpd.read_excel(D:\\data\\all_sales.xlsx)# 按地区分Sheetwithpd.ExcelWriter(D:\\data\\sales_by_region.xlsx)aswriter:forregionindf[地区].unique():df_regiondf[df[地区]region]df_region.to_excel(writer,sheet_nameregion,indexFalse)7.3 Sheet数量管理数据积累太多Sheet会影响文件大小和打开速度。定期归档旧Sheetimportopenpyxlfromdatetimeimportdatetime,timedelta wbopenpyxl.load_workbook(D:\\data\\daily_collection.xlsx)# 删除3个月前的Sheetcutoff(datetime.now()-timedelta(days90)).strftime(%Y%m%d)forwsinwb.worksheets:# 假设Sheet名是日期格式如20260401ifws.title.isdigit()andws.titlecutoff:wb.remove(ws)print(f已删除旧Sheet:{ws.title})wb.save(D:\\data\\daily_collection.xlsx)八、避坑清单坑1操作后忘记save所有Sheet操作新增、删除、重命名等都需要调用wb.save()才生效。很多人操作完了忘了保存关闭后发现什么都没变。坑2文件被占用无法保存Excel文件正被打开wb.save()报错文件被占用。保存前确保文件没被其他程序打开。坑3Sheet名冲突创建Sheet时用了已存在的Sheet名会报错或者覆盖。创建前先检查ifsheet_nameinwb.sheetnames:# 已存在选择覆盖或改名wb.remove(wb[sheet_name])wswb.create_sheet(sheet_name)坑4pandas写入时Sheet名包含特殊字符pandas的to_excel中Sheet名不能超过31个字符也不能包含特殊字符。写入前清洗Sheet名。坑5大量Sheet导致文件打开极慢一个文件有几十上百个Sheet时打开和保存都很慢。定期归档把旧Sheet移到归档文件中。

相关新闻

微信小程序云开发+混元Lite实战:零服务器构建AI增强应用

微信小程序云开发+混元Lite实战:零服务器构建AI增强应用

1. 项目概述:这不是“薅羊毛”,而是一次微信生态内真实可用的云资源实践“微信小程序送补贴!手把手教你薅免费云开发资源 混元 Token(附使用教程)”——这个标题里藏着三个被严重误读的关键词:“送补贴”“…

2026/7/8 19:03:22阅读更多 →
3分钟掌握Windows窗口强制调整:告别无法缩放的应用窗口

3分钟掌握Windows窗口强制调整:告别无法缩放的应用窗口

3分钟掌握Windows窗口强制调整:告别无法缩放的应用窗口 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些顽固的Windows应用窗口而烦恼吗?有些程序…

2026/7/8 19:03:22阅读更多 →
终极指南:如何零成本从3ds Max迁移到Blender?BsMax插件让3D艺术家无缝过渡

终极指南:如何零成本从3ds Max迁移到Blender?BsMax插件让3D艺术家无缝过渡

终极指南:如何零成本从3ds Max迁移到Blender?BsMax插件让3D艺术家无缝过渡 【免费下载链接】BsMax BsMax Blender Addon (UI simulator/ Modeling/ Rigg & Animation/ Render Tools and ... 项目地址: https://gitcode.com/gh_mirrors/bs/BsMax …

2026/7/8 19:03:22阅读更多 →
TMSpeech:完全免费的Windows离线语音转文字工具完整指南

TMSpeech:完全免费的Windows离线语音转文字工具完整指南

TMSpeech:完全免费的Windows离线语音转文字工具完整指南 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录手忙脚乱而烦恼?还在为在线课程笔记效率低下而困扰?TMSpee…

2026/7/8 20:09:04阅读更多 →
建行网银U盾证书更新失败排查:3种常见报错原因与对应解决方案

建行网银U盾证书更新失败排查:3种常见报错原因与对应解决方案

建行网银U盾证书更新失败排查指南:3类典型问题深度解析早上9点,财务总监李女士正准备通过企业网银支付一笔紧急款项,系统却突然弹出"证书已过期"的红色警告。她按照银行短信指引尝试更新U盾证书,却在最后一步遭遇"…

2026/7/8 20:09:04阅读更多 →
BiliBiliCCSubtitle:解锁B站字幕资源的专业级命令行工具

BiliBiliCCSubtitle:解锁B站字幕资源的专业级命令行工具

BiliBiliCCSubtitle:解锁B站字幕资源的专业级命令行工具 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 你是否曾经在观看B站精彩视频时,想…

2026/7/8 20:09:04阅读更多 →
Chrome/Safari/Firefox 自动播放策略对比:从 MEI 到用户手势的 5 个关键差异

Chrome/Safari/Firefox 自动播放策略对比:从 MEI 到用户手势的 5 个关键差异

Chrome/Safari/Firefox 自动播放策略对比:从 MEI 到用户手势的 5 个关键差异在当今的网页开发中,音频和视频的自动播放功能已成为提升用户体验的重要手段。然而,各大浏览器厂商出于对用户体验和网络流量的考虑,纷纷实施了严格的自…

2026/7/8 20:09:04阅读更多 →
3种主流风格迁移方案对比:CycleGAN vs StyleGAN-ADA vs Diffusion,实测FID与推理速度

3种主流风格迁移方案对比:CycleGAN vs StyleGAN-ADA vs Diffusion,实测FID与推理速度

风格迁移技术全景评测:CycleGAN、StyleGAN-ADA与Diffusion Model的实战对比引言:当艺术创作遇上深度学习想象一下,将梵高的星空笔触赋予一张现代城市照片,或是把水墨画的意境融入数码摄影作品——这正是风格迁移技术的魔力所在。作…

2026/7/8 20:09:04阅读更多 →
PHP-FPM 配置与不死马防御:5个关键参数调优指南

PHP-FPM 配置与不死马防御:5个关键参数调优指南

PHP-FPM 配置与不死马防御:5个关键参数调优指南在当今的Web安全环境中,PHP不死马已成为服务器运维人员面临的主要威胁之一。这种特殊的恶意脚本能够在删除自身文件后仍驻留内存持续运行,通过不断生成新的Webshell维持攻击者对服务器的控制。本…

2026/7/8 20:04:04阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/8 5:12:14阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/8 7:00:12阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/8 2:26:06阅读更多 →
作为一个给团队打绩效的人,我想说几句

作为一个给团队打绩效的人,我想说几句

我每半年都会给团队成员打绩效,也会参与和 CTO 的绩效校准,所以从管理者的视角,说说这件事 首先,我先把结论告诉你:接受结果,但一定要把原因问清楚。 因为当绩效公布到你这里的时候,结果基本已…

2026/7/8 0:01:17阅读更多 →
A股股指期货:全维度解析(多表格结构化完整版)

A股股指期货:全维度解析(多表格结构化完整版)

一、基础定义与核心本质股指期货全称股票价格指数期货,是中国金融期货交易所(中金所)上市的标准化金融期货合约,交易标的为 A 股大盘指数,约定未来特定时间按约定价格现金交割指数涨跌差价,不交割一篮子股票…

2026/7/8 0:01:17阅读更多 →
iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder &…

2026/7/8 0:01:17阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/8 6:59:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/8 13:42:39阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/8 13:42:39阅读更多 →