影刀RPA Excel工作簿保护:加密与区域锁定
影刀RPA Excel工作簿保护加密与区域锁定作者林焱什么情况用什么生成的报表发出去后不希望别人修改公式、不想让某些列被编辑、需要给整个文件加密码防止未授权查看。在影刀RPA自动化流程中可以通过openpyxl设置工作表保护、单元格锁定以及用win32com设置文件级加密密码。适用场景报表防篡改、模板保护公式不被覆盖、敏感数据加密、多部门协作时限制编辑区域。怎么做工作表保护importopenpyxlfromopenpyxl.worksheet.protectionimportSheetProtection wbopenpyxl.load_workbook(rC:\Reports\report.xlsx)wswb.active# 默认所有单元格都是锁定状态开启保护后整个表不可编辑ws.protection.sheetTruews.protection.passwordmypassword123# 允许部分操作不锁死所有功能[video(video-uecXQBr4-1783501007503)(type-csdn)(url-https://live.csdn.net/v/embed/525010)(image-https://v-![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d74ac497116549e1891d9f709f0e84f1.png#pic_center)blog.csdnimg.cn/asset/f4faa587144cb7070f19e8b36813806b/cover/Cover0.jpg)(title-店群矩阵自动化突破运营极限)]ws.protection.formatCellsFalse# 允许设置单元格格式ws.protection.formatColumnsFalse# 允许调整列宽ws.protection.formatRowsFalse# 允许调整行高ws.protection.sortFalse# 允许排序ws.protection.autoFilterFalse# 允许自动筛选ws.protection.selectLockedCellsFalse# 允许选中锁定单元格ws.protection.selectUnlockedCellsFalse# 允许选中未锁定单元格wb.save(rC:\Reports\report_protected.xlsx)区域锁定只保护部分单元格fromopenpyxl.stylesimportProtection wbopenpyxl.load_workbook(rC:\Reports\report.xlsx)wswb.active# 默认所有单元格都是锁定的# 先把整个工作表的单元格设为不锁定forrowinws.iter_rows():forcellinrow:cell.protectionProtection(lockedFalse)# 再把需要保护的区域如公式列设为锁定forrowinrange(2,ws.max_row1):# 假设D列是公式列需要保护ws.cell(rowrow,column4).protectionProtection(lockedTrue)# E列也是公式ws.cell(rowrow,column5).protectionProtection(lockedTrue)# 开启工作表保护ws.protection.sheetTruews.protection.passwordformulaprotectwb.save(rC:\Reports\report_partial_protect.xlsx)允许编辑特定区域# 更精细的方案用允许用户编辑区域# openpyxl不支持直接设置允许用户编辑区域但可以通过锁定/不锁定实现wbopenpyxl.load_workbook(rC:\Reports\report.xlsx)wswb.active# 标题行和公式列锁定数据区域可编辑forrowinrange(1,ws.max_row1):forcolinrange(1,ws.max_column1):cellws.cell(rowrow,columncol)ifrow1:# 标题行锁定![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ceef45c32b75438da42b1869d7d0020d.png#pic_center)cell.protectionProtection(lockedTrue)elifcolin[4,5,6]:# D/E/F列是公式锁定cell.protectionProtection(lockedTrue)else:# 其他区域可编辑cell.protectionProtection(lockedFalse)ws.protection.sheetTruews.protection.passwordprotect123wb.save(rC:\Reports\report_zone_protect.xlsx)文件级加密openpyxl不支持设置文件打开密码需要用win32comimportwin32com.clientdefencrypt_excel(file_path,password):给Excel文件设置打开密码excelwin32com.client.Dispatch(Excel.Application)excel.VisibleFalseexcel.DisplayAlertsFalsewbexcel.Workbooks.Open(file_path)# 设置打开密码wb.Passwordpassword wb.Save()wb.Close()excel.Quit()returnf文件已加密:{file_path}# 使用encrypt_excel(rC:\Reports\confidential.xlsx,Open2026)批量保护报表defbatch_protect_reports(folder,password,protect_formula_colsNone):批量保护文件夹内所有Excel的公式列importosifprotect_formula_colsisNone:protect_formula_cols[]results[]forfilenameinos.listdir(folder):ifnotfilename.endswith(.xlsx)orfilename.startswith(~$):continuefilepathos.path.join(folder,filename)try:wbopenpyxl.load_workbook(filepath)forwsinwb.worksheets:# 全部解锁forrowinws.iter_rows():forcellinrow:cell.protectionProtection(lockedFalse)# 锁定指定列forcol_numinprotect_formula_cols:forrowinrange(1,ws.max_row1):ws.cell(rowrow,columncol_num).protectionProtection(lockedTrue)# 保护工作表ws.protection.sheetTruews.protection.passwordpassword ws.protection.formatCellsFalsews.protection.formatColumnsFalsews.protection.formatRowsFalsewb.save(filepath)results.append(f成功:{filename})exceptExceptionase:results.append(f失败:{filename}-{str(e)})returnresults# 使用保护C列和D列公式列resultsbatch_protect_reports(rC:\Reports\月度报表,passwordreport2026,protect_formula_cols[3,4])forrinresults:print(r)有什么坑坑1保护密码容易被破解openpyxl的工作表保护密码只是简单的哈希安全性很低# openpyxl的sheet protection密码只是防止误操作# 任何人都可以用工具移除不能作为安全措施# 如果需要真正的安全用文件级加密# 文件级密码win32com的wb.Password使用AES加密安全性较高# 工作表保护 防误操作# 文件加密 防未授权访问坑2保护后无法操作数据设了工作表保护后后续自动化流程需要写入数据会失败# 问题保护后无法写入ws.protection.sheetTruews[A1].value新数据# 可能失败# 解决先取消保护操作完再恢复ws.protection.sheetFalsews[A1].value新数据[video(video-kJip7xx0-1783501014110)(type-csdn)(url-https://live.csdn.net/v/embed/524992)(image-https://v-blog.csdnimg.cn/asset/b59aed2f01d4fe8583467562aaf4dcfd/cover/Cover0.jpg)(title-temu店群自动化报活动案例)]ws.protection.sheetTrue# 或者写入时忽略保护# openpyxl的写入不受sheet protection影响它只是设置Excel的UI保护# 真正的写入限制只有在Excel应用中才有效坑3win32com加密后文件格式变化# 问题用win32com设密码后文件可能从xlsx变成xlsm# 或者密码设置后SaveAs需要指定FileFormat# 正确做法wb.Passwordpassword wb.SaveAs(filepath,FileFormat51,# 51 xlsx格式Passwordpassword)坑4保护后用户无法使用筛选和排序默认保护会禁用筛选和排序用户体验差# 需要显式允许这些操作ws.protection.sheetTruews.protection.passwordmypasswordws.protection.autoFilterFalse# 允许使用筛选ws.protection.sortFalse# 允许排序ws.protection.pivotTablesFalse# 允许操作透视表ws.protection.insertRowsFalse# 允许插入行ws.protection.deleteRowsFalse# 允许删除行# True 禁止, False 允许反直觉坑5已有保护密码的文件无法修改需要修改一个已加密码保护的文件但不知道密码# openpyxl可以读取有工作表保护的文件但修改后保存会丢失保护设置wbopenpyxl.load_workbook(protected.xlsx)wswb.active# 移除工作表保护ws.protection.sheetFalsews.protection.passwordNone# 或 ws.protection.disable()# 修改数据ws[A1].value新数据# 重新设置保护ws.protection.sheetTruews.protection.passwordnewpasswordwb.save(protected.xlsx)

相关新闻

TongWeb7企业版 适配Redis分布式会话(spring-session-redis)

TongWeb7企业版 适配Redis分布式会话(spring-session-redis)

描述:客户项目通过spring-session-redis实现分布式会话共享,部署至 TongWeb7 企业版后,偶发会话失效,用户被强制跳转回登录页面排查:抓包与日志观测发现:异常请求(如错误页、异常跳转请求&#…

2026/7/9 4:40:02阅读更多 →
Stable Diffusion电商应用爆发前夜(2024Q3实测数据曝光):头部品牌已悄悄部署的8类高转化用例

Stable Diffusion电商应用爆发前夜(2024Q3实测数据曝光):头部品牌已悄悄部署的8类高转化用例

更多请点击: https://intelliparadigm.com 第一章:Stable Diffusion电商应用爆发前夜的产业图谱 Stable Diffusion 正从实验性AI绘画工具,加速演变为电商视觉生产力基础设施。当前,全球头部电商平台、SaaS服务商与垂直AI初创公司…

2026/7/9 4:40:02阅读更多 →
Codex+Skills:AI驱动的智能学术研究助手实战指南

Codex+Skills:AI驱动的智能学术研究助手实战指南

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 如果你是一名科研工作者、研究生,或者需要撰写学术论文、技术报告,那么你一定经历过这样的痛苦:在…

2026/7/9 4:40:02阅读更多 →
【ChatGPT vs DeepSeek终极对决】:20年AI架构师实测7大维度(推理速度、中文逻辑、代码生成、长上下文、幻觉率、API稳定性、企业级合规性)数据全公开

【ChatGPT vs DeepSeek终极对决】:20年AI架构师实测7大维度(推理速度、中文逻辑、代码生成、长上下文、幻觉率、API稳定性、企业级合规性)数据全公开

更多请点击: https://intelliparadigm.com 第一章:ChatGPT vs DeepSeek终极对决:一场面向生产环境的AI模型实测宣言 在真实业务场景中,模型选型不能依赖宣传口径或零散 benchmark,而必须经受高并发请求、长上下文推理…

2026/7/9 5:50:07阅读更多 →
最新搞定shopee虾皮数据采集

最新搞定shopee虾皮数据采集

Shopee(虾皮)是一个流行的东南亚电商平台,许多商家和开发者都对其商品详情数据感兴趣。为了采集Shopee上的商品详情数据,特别是根据商品ID获取商品详情,通常需要使用Shopee提供的 API接口 或者通过爬虫技术。然而&…

2026/7/9 5:50:07阅读更多 →
C++详细分析讲解引用的概念与使用

C++详细分析讲解引用的概念与使用

1.引用的概念引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。2.引用的格式类型 & 引用变量名 ( 对象名 ) 引用实体;举例如下:注意…

2026/7/9 5:50:07阅读更多 →
GPT-4 API 成本优化实战:3种调用策略对比,Token消耗降低40%

GPT-4 API 成本优化实战:3种调用策略对比,Token消耗降低40%

GPT-4 API成本优化实战:3种高效调用策略深度解析 当企业级应用开始规模化接入GPT-4 API时,开发者们往往会面临一个现实挑战——随着业务量增长,API调用成本呈现指数级上升。某电商平台在接入GPT-4生成商品描述后,仅一个月就产生了…

2026/7/9 5:50:07阅读更多 →
S7-200 SMART 存储卡应用:3分钟完成程序复制与密码清除操作

S7-200 SMART 存储卡应用:3分钟完成程序复制与密码清除操作

S7-200 SMART存储卡高效应用:程序批量部署与安全维护实战指南在工业自动化项目中,时间就是生产力。当面对数十台相同配置的PLC设备时,传统的一对一编程下载方式会消耗工程师大量时间。西门子S7-200 SMART系列PLC的MicroSD存储卡功能&#xff…

2026/7/9 5:50:07阅读更多 →
2026年,这家切削液净化专家如何让工厂废液变“黄金”?

2026年,这家切削液净化专家如何让工厂废液变“黄金”?

走进任何一家现代化的机加工车间,你都能听到机床运转的轰鸣声,看到冷却液(切削液)在设备与工件间奔流不息。这看似平常的工业血液,却隐藏着巨大的成本黑洞与环保风险:过滤不净导致工件报废、浮油滋生细菌引…

2026/7/9 5:45:07阅读更多 →
从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/9 2:47:07阅读更多 →
Three.js 着色器光效教程

Three.js 着色器光效教程

着色器光效 Shader Light ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 ShaderMaterial 自…

2026/7/9 0:04:37阅读更多 →
如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南 【免费下载链接】casemove A dedicated desktop app that enables you to move items in and out of storage units in CS2. 项目地址: https://gitcode.com/gh_mirrors/ca/casemove 还在为CS2存储单…

2026/7/9 0:04:37阅读更多 →
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M…

2026/7/9 0:04:37阅读更多 →
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阅读更多 →