影刀RPA Excel的Sheet管理:新增、复制、重命名、删除

发布时间:2026/7/8 19:08:57

影刀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移到归档文件中。

相关新闻

告别IDE时代:浏览器编辑器、PaaS、AI与低代码如何重构开发范式

告别IDE时代:浏览器编辑器、PaaS、AI与低代码如何重构开发范式

2026/7/8 19:08:57

1. 当“IDE”这个词开始被加引号:我们到底在告别什么最近翻朋友圈,看到一位做了十五年嵌入式开发的老哥发了一条状态:“今天删掉了电脑里最后一个 IDE——Keil、IAR、CubeIDE、PlatformIO 全部卸载。不是不用了,是它们不再‘必须’…

AI IDE工作流适配指南:从认知负荷到错误恢复的实战决策树

AI IDE工作流适配指南:从认知负荷到错误恢复的实战决策树

2026/7/8 19:08:57

1. 这不是“选哪个更好”,而是“你的开发流如何被重构”2026年,AI IDE已不再是“代码补全工具”的升级版,它正在成为开发者工作流的新操作系统内核。你打开编辑器那一刻起,写代码、查文档、读日志、改配置、写测试、调接口、甚至画…

DBeaver安装与数据库连接原理深度解析

DBeaver安装与数据库连接原理深度解析

2026/7/8 18:58:57

1. DBeaver 是什么?为什么值得花时间装它? DBeaver 不是另一个“又一个数据库工具”,它是我在过去八年里,从 MySQL 到 Oracle、从 PostgreSQL 到达梦 DM8、从 TiDB 到 OceanBase、甚至调试 ClickHouse 和 StarRocks 时&#xff0c…

钉钉机器人 Webhook 安全配置实战:3步完成阿里云服务器端口与签名验证

钉钉机器人 Webhook 安全配置实战:3步完成阿里云服务器端口与签名验证

2026/7/8 20:29:03

钉钉机器人Webhook安全防护实战:从端口配置到签名验证的深度指南当企业IM工具中的机器人开始处理敏感业务数据时,安全防护就成为了开发过程中不可忽视的关键环节。上周某金融科技公司的运维团队就遭遇了真实案例:由于未启用签名验证&#xff…

Fastjson 1.2.83 安全升级实战:修复 CVE-2022-25845 的 3 种方法与兼容性验证

Fastjson 1.2.83 安全升级实战:修复 CVE-2022-25845 的 3 种方法与兼容性验证

2026/7/8 20:29:03

Fastjson 1.2.83 安全升级实战:修复 CVE-2022-25845 的 3 种方法与兼容性验证最近在排查项目依赖时发现,Fastjson 这个 Java 生态中使用广泛的 JSON 库又爆出了新的安全漏洞。作为一个长期使用 Fastjson 的开发者,我不得不再次面对这个老问题…

从平面到立体:如何用ImageToSTL将任何图片变成可触摸的3D艺术品

从平面到立体:如何用ImageToSTL将任何图片变成可触摸的3D艺术品

2026/7/8 20:29:03

从平面到立体:如何用ImageToSTL将任何图片变成可触摸的3D艺术品 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the le…

Fastjson 1.2.83 安全升级实战:修复 CVE-2022-25845,3步启用 SafeMode 保底方案

Fastjson 1.2.83 安全升级实战:修复 CVE-2022-25845,3步启用 SafeMode 保底方案

2026/7/8 20:29:03

Fastjson 1.2.83 安全升级实战:修复 CVE-2022-25845,3步启用 SafeMode 保底方案JSON 处理库的安全漏洞就像定时炸弹,随时可能引爆整个系统。去年曝光的 CVE-2022-25845 让无数使用 Fastjson 的 Java 开发者夜不能寐——这个漏洞允许攻击者通过…

PHP 文件包含漏洞实战:iwebsec 靶场 10 关核心绕过手法与伪协议利用

PHP 文件包含漏洞实战:iwebsec 靶场 10 关核心绕过手法与伪协议利用

2026/7/8 20:29:03

PHP 文件包含漏洞实战:iwebsec 靶场 10 关核心绕过手法与伪协议利用 在 Web 安全领域,文件包含漏洞(File Inclusion Vulnerability)一直是渗透测试中的高频攻击点。这种漏洞允许攻击者通过动态包含恶意文件来执行任意代码或读取敏…

3 款主流反作弊软件报错对比:EAC 30005、BattlEye、VAC 的成因与修复差异

3 款主流反作弊软件报错对比:EAC 30005、BattlEye、VAC 的成因与修复差异

2026/7/8 20:19:03

主流游戏反作弊系统报错深度解析:EAC、BattlEye与VAC的故障处理指南当你在深夜终于结束工作,准备打开心爱的游戏放松片刻,却遭遇"Error 30005: Create File Failed With 32"的冰冷提示——这种挫败感每位PC玩家都深有体会。反作弊系…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/8 0:44:47

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/8 6:29:42

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/8 14:04:34

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

Qwen Code+Obsidian构建可执行的AI时代认知操作系统

Qwen Code+Obsidian构建可执行的AI时代认知操作系统

2026/7/8 0:07:15

1. 项目概述:这不是又一个笔记软件教程,而是一套可复用的“认知操作系统”搭建逻辑你有没有试过,在读完Andrej Karpathy那篇著名的《Software 2.0》之后,满脑子都是“神经网络即代码”的震撼,但合上网页,打…

校园服饰细分赛道测算程序,学生平价国风,机能穿搭市场规模预估。

校园服饰细分赛道测算程序,学生平价国风,机能穿搭市场规模预估。

2026/7/8 0:07:15

校园服饰细分赛道测算程序(Python)——学生平价国风 & 机能穿搭市场规模预估(TAM / SAM / SOM)一、实际应用场景描述(真实业务抽象)在《时尚产业与品牌创新》课程中,细分市场切入&#xff0…

Visual C++运行库完整解决方案:告别软件兼容性问题

Visual C++运行库完整解决方案:告别软件兼容性问题

2026/7/8 0:07:15

Visual C运行库完整解决方案:告别软件兼容性问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾为打开游戏时弹出的"DLL缺失"错误…