使用Python保护或加密Excel文件的7种方法

目录
安装Python Excel库
Python 使用文档打开密码保护 Excel 文件
Python 使用文档修改密码保护 Excel 文件
Python 将 Excel 文件标记为最终版本
Python 保护 Excel 工作表
Python 在保护 Excel 工作表的同时允许编辑某些单元格
Python 锁定 Excel 工作表中的特定单元格
Python 锁定 Excel 工作表中的特定行或列
Excel文件通常包含敏感信息,如财务记录、客户数据或专有公式。保护和加密这些文件对于防止未经授权的访问和维护机密性至关重要。在本文中,我们将探讨如何使用Python自动化Excel文件的安全保护和加密过程,确保数据的安全性。主要包括以下主题:
- 使用文档打开密码保护 Excel 文件
- 使用文档修改密码保护 Excel 文件
- 将 Excel 文件标记为最终版本
- 保护 Excel 工作表
- 在保护 Excel 工作表的同时允许编辑某些单元格
- 锁定 Excel 工作表中的特定单元格
- 锁定Excel 工作表中的特定行或列
安装Python Excel库
在Python中,我们可以使用Spire.XLS for Python库来保护或加密Excel文件。该库提供了多种功能来保护和加密Excel文件,如设置密码、应用工作表保护、将Excel标记为最终版本、锁定单元格、行、列等。
你可以使用以下pip命令从PyPI安装Spire.XLS for Python:
pip install Spire.Xls
如果不清楚如何安装,查看这篇文档:如何在 Windows 中安装 Spire.XLS for Python
Python 使用文档打开密码保护 Excel 文件
文档打开密码的主要作用是限制未经授权的人打开或访问文档。设置了打开密码后,任何人都需要输入正确的密码才能成功打开该Excel文件。
通过使用Spire.XLS for Python提供的Workbook.Protect()方法,可以给Excel文件设置文档打开密码。关键步骤如下:
- 创建Workbook类的实例。
- 使用Workbook.LoadFromFile()方法加载Excel文件。
- 使用Workbook.Protect()方法给该Excel文件设置文档打开密码。
- 使用Workbook.SaveToFile()方法保存结果文件。
完整代码:
from spire.xls import *
from spire.xls.common import *# 创建一个 Workbook 对象
workbook = Workbook()
# 加载一个 Excel 文件
workbook.LoadFromFile("测试.xlsx")# 给文件设置文档打开密码
workbook.Protect("12345Open")# 保存结果文件
workbook.SaveToFile("文档打开密码.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
Python 使用文档修改密码保护 Excel 文件
文档修改密码用于限制未经授权的人修改或编辑文档。设置了修改密码后,任何人都需要输入正确的密码才能成功修改该Excel文件内容。
要给Excel文件设置文档修改密码,可以使用Workbook.SetWriteProtectionPassword()方法。具体步骤如下:
- 创建Workbook类的实例。
- 使用Workbook.LoadFromFile()方法加载Excel文件。
- 使用Workbook.SetWriteProtectionPassword()方法给该Excel文件设置文档修改密码。
- 使用Workbook.SaveToFile()方法保存结果文件。
完整代码:
from spire.xls import *
from spire.xls.common import *# 创建一个 Workbook 对象
workbook = Workbook()
# 加载一个 Excel 文件
workbook.LoadFromFile("测试.xlsx")# 给文件设置文档修改密码
workbook.SetWriteProtectionPassword("12345Modify")# 保存结果文件
workbook.SaveToFile("文档修改密码.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
需要注意的是,文档打开密码和修改密码可以单独设置,也可以同时设置。当同时设置了这两种密码时,用户不仅需要输入正确的打开密码才能打开文件,还需要输入正确的修改密码才能编辑文件内容。
Python 将 Excel 文件标记为最终版本
当Excel文件被标记为最终版本后,其他用户在打开文件时会看到"此文件已被标记为最终版本"的提示,从而知道不应再对其进行编辑。这种方式可以有效防止Excel文件被意外修改。
要将Excel文件标记为最终版本,可以使用Workbook.CustomDocumentProperties.Add("_MarkAsFinal", True)方法。具体步骤如下:
- 创建Workbook类的实例。
- 使用Workbook.LoadFromFile()方法加载Excel文件。
- 使用Workbook.CustomDocumentProperties.Add("_MarkAsFinal", True)方法将该Excel文件标记为最终版本。
- 使用Workbook.SaveToFile()方法保存结果文件。
完整代码:
from spire.xls import *
from spire.xls.common import *# 创建一个 Workbook 对象
workbook = Workbook()
# 加载一个 Excel 文件
workbook.LoadFromFile("测试.xlsx")# 将文档标记为最终版本
workbook.CustomDocumentProperties.Add("_MarkAsFinal", True)# 保存结果文件
workbook.SaveToFile("最终版本.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
Python 保护 Excel 工作表
除了保护整个Excel文件以外,Excel还支持对单个工作表进行保护,从而限制用户对特定工作表的编辑操作。
要保护特定Excel工作表,可以使用Worksheet.Protect()方法。具体步骤如下:
- 创建Workbook类的实例。
- 使用Workbook.LoadFromFile()方法加载Excel文件。
- 使用Workbook.Worksheets[index]属性获取特定工作表。
- 使用Worksheet.Protect()方法保护该工作表。
- 使用Workbook.SaveToFile()方法保存结果文件。
完整代码:
from spire.xls import *
from spire.xls.common import *# 创建一个 Workbook 对象
workbook = Workbook()
# 加载一个 Excel 文件
workbook.LoadFromFile("测试.xlsx")# 获取第一个工作表
sheet = workbook.Worksheets[0]# 用密码保护工作表,并指定保护类型
sheet.Protect("Sheet111", SheetProtectionType.none)# 保存结果文件
workbook.SaveToFile("保护工作表.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
Python 在保护 Excel 工作表的同时允许编辑某些单元格
在保护 Excel 工作表时,你可以设置可编辑区域,以允许用户编辑被保护工作表中的某些特定单元格。
要设置工作表的可编辑区域,可以使用Worksheet.AddAllowEditRange()方法。具体步骤如下:
- 创建Workbook类的实例。
- 使用Workbook.LoadFromFile()方法加载Excel文件。
- 使用Workbook.Worksheets[index]属性获取特定工作表。
- 使用Worksheet.AddAllowEditRange()方法指定保护工作表后可编辑的单元格区域。
- 使用Worksheet.Protect()方法保护该工作表。
- 使用Workbook.SaveToFile()方法保存结果文件。
完整代码:
from spire.xls import *
from spire.xls.common import *# 创建一个 Workbook 对象
workbook = Workbook()
# 加载一个 Excel 文件
workbook.LoadFromFile("测试.xlsx")# 获取第一个工作表
sheet = workbook.Worksheets[0]# 指定可编辑的单元格区域
sheet.AddAllowEditRange("Range1", sheet.Range["B2:E11"])# 用密码保护工作表
sheet.Protect("Sheet111", SheetProtectionType.none)# 保存结果文件
workbook.SaveToFile("可编辑区域.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
Python 锁定 Excel 工作表中的特定单元格
如果 Excel 工作表中一些关键单元格包含重要的公式或数据,你可以对这些单元格进行锁定保护。这样可以防止普通用户对这些关键单元格进行编辑,同时仍然让他们可以对其他单元格进行操作。
要锁定特定单元格,可以使用Worksheet.Range[].Style.Locked属性。具体步骤如下:
- 创建Workbook类的实例。
- 使用Workbook.LoadFromFile()方法加载Excel文件。
- 使用Workbook.Worksheets[index]属性获取特定工作表。
- 使用Worksheet.Cells属性获取工作表的单元格集合。
- 循环遍历单元格,并取消所有单元格的锁定状态 (Excel中所有单元格的锁定状态默认是选中的)。
- 使用Worksheet.Range[].Style.Locked属性锁定特定单元格或单元格区域。
- 使用Worksheet.Protect()方法保护该工作表。
- 使用Workbook.SaveToFile()方法保存结果文件。
完整代码:
from spire.xls import *
from spire.xls.common import *# 创建一个 Workbook 对象
workbook = Workbook()
# 加载一个 Excel 文件
workbook.LoadFromFile("测试.xlsx")# 获取第一个工作表
sheet = workbook.Worksheets[0]# 获取工作表的单元格集合
cellsCollection = sheet.Cells# 循环遍历单元格,并取消所有单元格的锁定状态 (在Excel中,所有单元格的锁定状态默认都是选中的)
for cell in cellsCollection:cell.Style.Locked = False# 锁定特定的单元格区域
sheet.Range["A1:E1"].Style.Locked = True# 用密码保护工作表
sheet.Protect("Sheet111", SheetProtectionType.none)# 保存结果文件
workbook.SaveToFile("锁定单元格.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
Python 锁定 Excel 工作表中的特定行或列
除了锁定特定的单元格或区域外,你还可以锁定整行或整列。
要锁定特定的行或列,可以使用Worksheet.Rows[index].Style.Locked或Worksheet.Columns[index].Style.Locked属性。具体步骤如下:
- 创建Workbook类的实例。
- 使用Workbook.LoadFromFile()方法加载Excel文件。
- 使用Workbook.Worksheets[index]属性获取特定工作表。
- 使用Worksheet.Cells属性获取工作表的单元格集合。
- 循环遍历单元格,并取消所有单元格的锁定状态 (Excel中所有单元格的锁定状态默认是选中的)。
- 使用Worksheet.Rows[index].Style.Locked或Worksheet.Columns[index].Style.Locked属性锁定特定行或列。
- 使用Worksheet.Protect()方法保护该工作表。
- 使用Workbook.SaveToFile()方法保存结果文件。
完整代码:
from spire.xls import *
from spire.xls.common import *# 创建一个 Workbook 对象
workbook = Workbook()
# 加载一个 Excel 文件
workbook.LoadFromFile("测试.xlsx")# 获取第一个工作表
sheet = workbook.Worksheets[0]# 获取工作表的单元格集合
cellsCollection = sheet.Cells# 循环遍历单元格,并取消所有单元格的锁定状态 (在Excel中,所有单元格的锁定状态默认都是选中的)
for cell in cellsCollection:cell.Style.Locked = False# 锁定第一行和第一列
sheet.Rows[0].Style.Locked = True
sheet.Columns[0].Style.Locked = True# 用密码保护工作表
sheet.Protect("Sheet111", SheetProtectionType.none)# 保存结果文件
workbook.SaveToFile("锁定行列.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
以上就是使用Python保护或加密Excel文件的7种不同的场景。希望对你有帮助。
本文完结-
相关文章:
使用Python保护或加密Excel文件的7种方法
目录 安装Python Excel库 Python 使用文档打开密码保护 Excel 文件 Python 使用文档修改密码保护 Excel 文件 Python 将 Excel 文件标记为最终版本 Python 保护 Excel 工作表 Python 在保护 Excel 工作表的同时允许编辑某些单元格 Python 锁定 Excel 工作表中的特定单元…...
【嵌入式Linux】<总览> 文件IO(更新中)
文章目录 前言 一、常用函数 1. open函数 2. close函数 3. write函数 4. read函数 5. dup函数 6. dup2函数 二、文件读写细节 1. 换行符 2. 文件描述符 3. errno和perror 前言 在Linux系统中,一切皆文件。因此,掌握Linux下文件IO常用的函数…...
【无线传感网】分簇路由算法介绍
目录 1、LEACH路由算法 2、PEGASIS 算法 3、TEEN 算法 5、APTEEN 5、LEACH-C 算法 无线传感网中的路由协议就是寻找一条路径让网络中节点沿着这条路径将数据信息传输出去。路由协议的两大关键要点就是路径的优化和数据的分组,在传统计算机网络中,是将网络的拓扑…...
java 利用poi读取wps嵌入式图片,自测
代码 主要工具类 需要引入依赖: package com.chenkang.demo.util;import cn.wps.officeDocument.x2017.etCustomData.CellImagesDocument; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.openxml4j.opc.PackagePart; import org.apache.…...
git 常用操作指令
文章目录 git clonegit configgit addgit commitgit rmgit branch/checkoutgit pull/pushgit rebash/merge git clone git clone 可以将一个远程 Git 仓库拷贝到本地,让自己能够查看该项目,或者进行修改。 拷贝项目命令格式如下:git clone [u…...
达梦导入导出
针对导出数据库表结构通常有 3 种方法: 使用 DTS 导出 打开 DTS 迁移工具,选择【DM-->SQL】并链接到数据库中,如下图所示: 添加定义脚本,并选择【迁移范围】(仅迁移对象定义),如…...
超级数据查看器 教程pdf 1-31集 百度网盘
百度网盘链接 提取码1234https://pan.baidu.com/s/1s_2lbwZ2_Su83vDElv76ag?pwd1234 通过百度网盘分享的文件:超级数据查看器 … 链接:https://pan.baidu.com/s/1s_2lbwZ2_Su83vDElv76ag?pwd1234 提取码:1234 复制这段内容打开「百度网盘APP 即可获取」...
一、开发环境安装 Avalonia
1、概述 官网中是这么介绍Avalonia的,Avalonia是一个强大的框架,使开发人员能够使用.NET创建跨平台应用程序。它使用自己的渲染引擎绘制UI控件,确保在Windows、macOS、Linux、Android、iOS和WebAssembly等不同平台上具有一致的外观和行为。这…...
融资A轮B轮是什么意思?
环境: 融资 问题描述: 融资A轮B轮是什么意思 解决方案: 在A轮融资之前,通常有以下几轮融资阶段: 种子轮(Seed Round):这是企业生命周期中最早的融资阶段,通常发生在…...
开发一个python工具,pdf转图片,并且截成单个图片,然后修整没用的白边
今天推荐一键款本人开发的pdf转单张图片并截取没有用的白边工具 一、开发背景: 业务需要将一个pdf文件展示在前端显示,但是基于各种原因,放弃了h5使用插件展示 原因有多个,文件资源太大加载太慢、pdf展示兼容性问题、pdf展示效果…...
手机网络卡顿,试试飞行模式
当你遇到某个网页刷新慢或者打不开,而通过切换飞行模式就能解决这个问题,可能的原因有以下几种: 1. 网络连接重置 切换飞行模式会导致你的手机断开当前的网络连接(包括Wi-Fi和移动数据),然后重新建立连接…...
【退役之重学 AI】Ubuntu 安装 Anaconda
一. 下载 安装文件 https://www.anaconda.com/download/success 二. 安装 bash anaconda****.bash 一路 enter,yes 最后一个问你 要不要 conda init,这里得输入yes(默认是no,所以不要直接 enter),否则你…...
flutter 命令
1.查看依赖树 flutter pub deps 2.清理Flutter缓存 flutter clean 3.清理Gradle缓存 ./gradlew cleanBuildCache 4.清理Pub缓存: flutter pub cache repair 5.获取依赖项: flutter pub get 6.更新依赖项: flutter pub upgrade 7.…...
商超仓库管理系统
摘要 随着全球经济和互联网技术的快速发展,依靠互联网技术的各种管理系统逐渐应用到社会的方方面面。各行业的有识之士都逐渐开始意识到过去传统的人工管理模式已经逐渐成为企业发展的绊脚石,不再适应现代企业的发展需要。企业想要得到更好的发展&#…...
校园疫情防控健康打卡系统
摘 要 自疫情出现以来,全世界人民的生命安全和健康都面临着严重威胁。高校是我国培养人才的重要基地,其安全和稳定影响着社会的发展和进步。因此,各高校高度重视疫情防控工作,并在校园疫情防控中引入了健康打卡系统。本论文主要研…...
关于阿里云效流水线自动部署项目教程
1、登录阿里云效:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 2、点击左侧流水线: 3、在流水线界面,新建流水线 4、我的是php代码,因此选择php模版 5、创建之后添加流程线源,如下图 6、选择相应的源头。比…...
食品快消品进销存+门店批发+零售商城整体代码输出
食品快消品行业在当今信息化和数字化浪潮中,建立批发零售的信息化系统已成为一种迫切的必要性。通过信息化,食品快消品企业能够实现从生产到销售的全面优化,提高供应链效率,降低运营成本,增强市场竞争力。通过有效的信…...
cocosCreator获取手机剪切板内容
最近游戏中需要加上复制粘贴的功能,这个时候就涉及到安卓原生层的东西。步骤如下: 公开文章地址,见个人博客 复制功能 ts代码 调用代码,在需要复制的地方调用即可。 public static copyToClipBoard(str) {if (sys.platform sy…...
SAP Web IDE 安装使用
For training SAP Web IDE 是基于 Eclipse 内核的在线开发 IDE,可以使用在线的试用版本,但服务器在德国,访问的网速特别慢。也可以使用 Personal Edition,在本机启动和编写代码。 打开官网下载WEBIDE工具包,包含 Tri…...
Excel 常用技巧(六)
Microsoft Excel 是微软为 Windows、macOS、Android 和 iOS 开发的电子表格软件,可以用来制作电子表格、完成许多复杂的数据运算,进行数据的分析和预测,并且具有强大的制作图表的功能。由于 Excel 具有十分友好的人机界面和强大的计算功能&am…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
