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 天的临时许可证。