excel 文件通常包含敏感和机密信息,如财务数据、个人信息、商业秘密或专有公式。在互联网上或组织之间共享这些文件时,可能存在数据泄漏、被盗或未经授权修改的风险。为了解决这个问题,excel 提供了一套全面的保护功能,如密码保护工作簿、限制工作表的编辑和锁定单元格等,使用户能够建立多层安全机制来控制数据访问和维护 excel 文件的完整性。本文将介绍如何使用 spire.xls for python 在 python 中保护和解除对 excel 工作簿和工作表的保护。
- python 密码保护整个工作簿
- python 使用特定保护类型保护工作表
- python 允许用户编辑受保护工作表中的范围
- python 解除对受密码保护工作表的保护
- python 删除或重置加密工作簿的密码
安装 spire.xls for python
本教程需要 spire.xls for python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 windows 中。
pip install spire.xls
如果您不确定如何安装,请参考此教程: 如何在 windows 中安装 spire.xls for python
python 密码保护整个工作簿
通过使用密码对 excel 文档进行加密,可以确保文档中的数据安全,未经授权的个人无法访问。以下是使用 spire.xls for python 对工作簿进行密码保护的步骤。
- 创建 workbook 对象。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 使用 workbook.protect() 方法用密码保护工作簿。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件中。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个新的workbook对象
workbook = workbook()
# 从现有的excel文件加载工作簿
workbook.loadfromfile("示例文档.xlsx")
# 对整个工作簿进行保护,设置密码为"password-123"
workbook.protect("password-123")
# 将工作簿保存为新的excel文件,版本为2016
workbook.savetofile("加密文档.xlsx", excelversion.version2016)
workbook.dispose()
python 使用特定保护类型保护工作表
如果想授权他人查看 excel 文档,同时限制他们对工作表的更改类型,可以使用特定的保护类型来保护工作表。下表列出了 sheetprotectiontype 枚举中各种预定义的保护类型。
保护类型 | 允许用户操作内容 |
content | 修改或插入内容 |
deletingcolumns | 删除列 |
deletingrows | 删除行 |
filtering | 设置筛选器 |
formattingcells | 设置单元格格式 |
formattingcolumns | 列格式 |
formattingrows | 行格式 |
insertingcolumns | 插入列 |
insertingrows | 插入行 |
insertinghyperlinks | 插入超链接 |
lockedcells | 选择锁定的单元格 |
unlockedcells | 选择未锁定的单元格 |
objects | 修改绘画对象 |
scenarios | 修改已保存的场景 |
sorting | 数据排序 |
usingpivottables | 使用透视表和透视图 |
all | 在受保护的工作表上执行上面列出的任何操作 |
none | 在受保护的工作表上不做任何操作 |
以下步骤将演示如何使用 spire.xls for python 以特定保护类型保护工作表。
- 创建 workbook 对象。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 通过 workbook.worksheets[index] 属性获取特定工作表。
- 使用 worksheet.protect(password:str, options:sheetprotectiontype) 方法,用密码和特定保护类型保护工作表。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件中。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个新的workbook对象
workbook = workbook()
# 从现有的excel文件加载工作簿
workbook.loadfromfile("示例文档.xlsx")
# 获取工作簿中的第一个工作表
worksheet = workbook.worksheets[0]
# 对工作表进行保护,设置密码为"password-permission",不限制任何权限
worksheet.protect("password-permission", sheetprotectiontype.none)
# 将工作簿保存为新的excel文件,版本为2016
workbook.savetofile("保护工作表.xlsx", excelversion.version2016)
workbook.dispose()
python 允许用户编辑受保护工作表中的范围
可以通过 excelpicture.toprow 属性和 excelpicture.leftcolumn 属性设置或获取图像的起始位置。要在同一工作表中移动图像,请按照以下步骤进行操作:
- 创建一个 workbook 对象。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 通过 workbook.worksheets[index] 属性获取特定工作表。
- 使用 worksheet.addalloweditrange() 方法指定可编辑的单元格范围。
- 使用 worksheet.protect(password:str, options:sheetprotectiontype) 方法使用密码和特定保护类型保护工作表。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件中。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个新的workbook对象
workbook = workbook()
# 从现有的excel文件加载工作簿
workbook.loadfromfile("示例文档.xlsx")
# 获取工作簿中的第一个工作表
sheet = workbook.worksheets[0]
# 添加允许编辑的范围,范围为a2:a4
sheet.addalloweditrange("范围一", sheet.range["a2:a4"])
# 添加允许编辑的范围,范围为a5:c6
sheet.addalloweditrange("范围二", sheet.range["a5:c6"])
# 对工作表进行保护,设置密码为"password-permission",限制所有编辑权限
sheet.protect("password-permission", sheetprotectiontype.all)
# 将工作簿保存为新的excel文件,版本为2016
workbook.savetofile("允许编辑范围.xlsx", excelversion.version2016)
workbook.dispose()
python 解除对受密码保护工作表的保护
要解除受密码保护的工作表的保护,需要调用 worksheet.unprotect() 方法,并将原始密码作为参数传递给该方法。具体步骤如下:
- 创建一个 workbook 对象。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 通过 workbook.worksheets[index] 属性获取特定工作表。
- 使用 worksheet.unprotect(password:str) 方法移除密码保护。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件中。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个新的workbook对象
workbook = workbook()
# 从excel文件加载工作簿
workbook.loadfromfile("保护工作表.xlsx")
# 获取工作簿中的第一个工作表
sheet = workbook.worksheets[0]
# 解除工作表的保护,使用密码"password-permission"
sheet.unprotect("password-permission")
# 将工作簿保存为新的excel文件,版本为2016
workbook.savetofile("解除保护工作表.xlsx", excelversion.version2016)
workbook.dispose()
python 删除或重置加密工作簿的密码
要删除或重置加密工作簿的密码,可以使用 workbook.unprotect() 或 workbook.protect() 方法。以下步骤演示了如何加载加密 excel 文档并删除或更改其密码:
- 创建一个 workbook 对象。
- 通过 workbook.openpassword 属性指定打开密码。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 使用 workbook.unprotect() 方法移除加密,或使用 workbook.protect() 方法更改密码。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件中。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个新的workbook对象
workbook = workbook()
# 设置打开工作簿的密码为"password-123"
workbook.openpassword = "password-123"
# 从加密的excel文件加载工作簿
workbook.loadfromfile("加密文档.xlsx")
# 解除工作簿的保护
workbook.unprotect()
#重置密码
# workbook.protect("newpassword")
# 保存解密后的工作簿为新的excel文件,版本为2016
workbook.savetofile("解密文档.xlsx", excelversion.version2016)
workbook.dispose()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。