当前位置: 首页 > news >正文

使用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.LockedWorksheet.Columns[index].Style.Locked属性。具体步骤如下:

  • 创建Workbook类的实例。
  • 使用Workbook.LoadFromFile()方法加载Excel文件。
  • 使用Workbook.Worksheets[index]属性获取特定工作表。
  • 使用Worksheet.Cells属性获取工作表的单元格集合。
  • 循环遍历单元格,并取消所有单元格的锁定状态 (Excel中所有单元格的锁定状态默认是选中的)。
  • 使用Worksheet.Rows[index].Style.LockedWorksheet.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种不同的场景。希望对你有帮助。

本文完结-

相关文章:

  • 量化交易实操指南:从模拟回测到实盘交易的全流程揭秘!
  • Unity中的AssetBundleManifest
  • 机器学习笔记 - 用于3D数据分类、分割的Point Net简述
  • vscode卡顿问题处理(vue-official插件)
  • js时间戳转换为日期
  • 【Gitlab】Gitlab MAC M1通过Docker Desktop安装教程
  • react用ECharts实现组织架构图
  • JAVA Spring WebSocket 实时消息
  • 【Effective Web】常见的css居中方式
  • http网络服务器
  • Oracle 打开钱包 ORA-28368: cannot auto-create wallet
  • 响应式网页开发方法与实践
  • C++Primer Plus复习题(第六章)
  • Linux 内核 (十二)进程间通讯 之 消息队列
  • 深入掌握SystemVerilog验证:《SystemVerilog验证 测试平台编写指南》(可下载)
  • 【翻译】babel对TC39装饰器草案的实现
  • 07.Android之多媒体问题
  • Android 控件背景颜色处理
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Docker 笔记(2):Dockerfile
  • extract-text-webpack-plugin用法
  • Java|序列化异常StreamCorruptedException的解决方法
  • Java编程基础24——递归练习
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • ubuntu 下nginx安装 并支持https协议
  • 简单易用的leetcode开发测试工具(npm)
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端存储 - localStorage
  • 如何实现 font-size 的响应式
  • 软件开发学习的5大技巧,你知道吗?
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 突破自己的技术思维
  • 写给高年级小学生看的《Bash 指南》
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 用简单代码看卷积组块发展
  • 第二十章:异步和文件I/O.(二十三)
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​水经微图Web1.5.0版即将上线
  • !!Dom4j 学习笔记
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • ###C语言程序设计-----C语言学习(3)#
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (rabbitmq的高级特性)消息可靠性
  • (多级缓存)缓存同步
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks