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

 更新时间:2025年02月20日 09:58:16   作者:nuclear2011  
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_脚本之家

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文件被意外修改。

要将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种不同的场景。希望对你有帮助。

到此这篇关于使用Python保护或加密Excel文件的7种方法的文章就介绍到这了,更多相关Python保护或加密Excel文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python3 MKL库 安装使用教程

    python3 MKL库 安装使用教程

    这篇文章主要介绍了python3 MKL库 安装使用教程的相关资料,需要的朋友可以参考下
    2023-11-11
  • python如何删除文件中重复的字段

    python如何删除文件中重复的字段

    这篇文章主要为大家详细介绍了python如何删除文件中重复的字段,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Python实现的Kmeans++算法实例

    Python实现的Kmeans++算法实例

    这篇文章主要介绍了Kmeans和kmeans++算法,讲解了Kmeans算法的缺点和kmeans++算法的实现思路,以及Python和matlab中实现的Kmeans++算法,需要的朋友可以参考下
    2014-04-04
  • Python黑魔法Descriptor描述符的实例解析

    Python黑魔法Descriptor描述符的实例解析

    与迭代器和装饰器等一样,描述符也是Python编程中的一项高级技巧,这里我们就来讲解Python黑魔法Descriptor描述符的实例解析:
    2016-06-06
  • Python求离散序列导数的示例

    Python求离散序列导数的示例

    今天小编就为大家分享一篇Python求离散序列导数的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 详解Python中dict与set的使用

    详解Python中dict与set的使用

    这篇文章主要介绍了详解Python中dict与set的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • python与字符编码问题

    python与字符编码问题

    这篇文章主要介绍了python与字符编码问题,下面对编码问题做个简单的总结,感兴趣的朋友跟随小编一起看看吧
    2019-05-05
  • vc6编写python扩展的方法分享

    vc6编写python扩展的方法分享

    有些C/C++的代码要在Python中要用到,又不想转成python,所以就写成python的扩展来调用,以下是我尝试后,在VC6下编写python扩展的过程
    2014-01-01
  • Python利用pandas计算多个CSV文件数据值的实例

    Python利用pandas计算多个CSV文件数据值的实例

    下面小编就为大家分享一篇Python利用pandas计算多个CSV文件数据值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • pytorch 实现在一个优化器中设置多个网络参数的例子

    pytorch 实现在一个优化器中设置多个网络参数的例子

    今天小编就为大家分享一篇pytorch 实现在一个优化器中设置多个网络参数的例子,具有很好参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02

最新评论