使用Python实现对Excel文件加密与保护

 更新时间:2025年10月12日 09:08:32   作者:用户372157426135  
在日常工作中,Excel 文件经常存储敏感信息,本文介绍如何利用 Spire.XLS for Python 对 Excel 文件进行加密与保护,感兴趣的小伙伴可以跟随小编一起学习一下

在日常工作中,Excel 文件经常存储敏感信息,如财务报表、客户信息、员工薪资、项目进度等。一旦这些数据泄露或被误操作,可能导致信息混乱甚至经济损失。手动设置密码虽然能提供一定保护,但面对大量文件或复杂需求,显得繁琐且容易出错。

使用 Python 可以轻松实现自动化保护,本文介绍如何利用 Spire.XLS for Python 对 Excel 文件进行加密与保护,让我们能够更安全、高效地管理 Excel 数据。

为什么选择 Spire.XLS for Python

Python 处理 Excel 的库很多,如 openpyxlpandas 等,但它们在文件加密、工作表保护等高级功能上有限。相比之下,Spire.XLS for Python 的优势包括:

  • 功能丰富:支持文件加密、工作表保护、单元格锁定、格式保护等。
  • 易于使用:API 简单直观,开发者可以用少量代码实现复杂保护。
  • 兼容性强:支持 .xls.xlsx.csv 等多种格式。
  • 适合企业应用:性能稳定,适合处理大量文件和敏感数据。

在开始前,请使用以下命令安装Spire.XLS:

pip install spire.xls

文件级加密

设置打开密码(Document-Open Password)

我们经常希望自己的 Excel 文件在没有授权的情况下无法被打开。为文件设置打开密码是最直接的方式。只要有人尝试打开文件,没有密码就无法查看内容,非常适合共享敏感信息。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")

# 设置打开密码
workbook.Protect("PasswordToOpen")

# 保存加密后的文件
workbook.SaveToFile("OpenPasswordProtected.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

print("文件已加密,打开时需要输入 'PasswordToOpen'")

设置修改密码(Document-Modify Password)

有时候我们希望他人可以查看文件内容,但只有特定的人能修改。通过设置修改密码,Excel 会要求用户输入密码才能编辑文件,否则只能以只读方式打开。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")

# 设置修改密码
workbook.SetWriteProtectionPassword("PasswordToModify")

workbook.SaveToFile("ModifyPasswordProtected.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

print("文件已加密,修改需要 'PasswordToModify'")

标记为最终版本(Mark as Final)

有时候我们只想提醒别人不要修改文件,而不是强制禁止。这时可以把 Excel 文件标记为最终版本,打开时会显示提示信息,提醒用户文件已经完成。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")

# 添加自定义属性标记文件为最终版本
workbook.CustomDocumentProperties.Add("_MarkAsFinal", True)

workbook.SaveToFile("MarkAsFinal.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

print("文件已标记为最终版本")

工作表保护

保护整个工作表

有些情况下,我们希望防止任何人修改整个工作表。这样,表格里的数据和公式都能得到保护。我们可以通过设置密码来保护整个工作表,只有知道密码的人才能解除保护。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")

sheet = workbook.Worksheets[0]

# 设置保护密码
sheet.Protect("SheetPassword", SheetProtectionType.none)

workbook.SaveToFile("ProtectWorksheet.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

print("工作表已保护")

允许特定单元格可编辑

有时候我们希望保护工作表的大部分内容,但又让别人填写指定区域,例如数据录入模板中让用户输入数据而不改动表头和公式。可以先定义可编辑的单元格范围,再保护工作表。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")

sheet = workbook.Worksheets[0]

# 指定可编辑单元格范围
sheet.AddAllowEditRange("EditableRange1", sheet.Range["B2:E11"])

# 保护工作表
sheet.Protect("SheetPassword", SheetProtectionType.none)

workbook.SaveToFile("AllowEditingRanges.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

print("工作表已保护,指定范围可编辑")

锁定特定单元格或范围

有时候工作表中某些单元格存放公式或关键数据,需要避免被修改。我们可以先把所有单元格解锁,然后再锁定需要保护的区域,最后保护工作表,这样其他区域仍然可编辑。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")

sheet = workbook.Worksheets[0]

# 解锁所有单元格
for cell in sheet.Cells:
    cell.Style.Locked = False

# 锁定特定单元格范围
sheet.Range["A1:E1"].Style.Locked = True

# 保护工作表
sheet.Protect("SheetPassword", SheetProtectionType.none)

workbook.SaveToFile("LockSpecificCells.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

print("特定单元格已锁定")

锁定特定行和列

如果你希望保护关键行或列,例如表头或敏感列,可以先解锁所有单元格,再锁定需要保护的行列,然后保护工作表。这样既能保证重要信息不被修改,也能让其他区域继续可编辑。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")

sheet = workbook.Worksheets[0]

# 解锁所有单元格
for cell in sheet.Cells:
    cell.Style.Locked = False

# 锁定第一行(表头)
sheet.Rows[0].Style.Locked = True

# 锁定第一列(关键列)
sheet.Columns[0].Style.Locked = True

# 保护工作表
sheet.Protect("SheetPassword", SheetProtectionType.none)

workbook.SaveToFile("LockSpecificRowAndColumn.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

print("特定行和列已锁定")

总结

通过本文的示例,我们可以使用 Spire.XLS for Python:

  • 对整个文件加密(打开密码和修改密码)
  • 标记为最终版本,防止误操作
  • 保护整个工作表
  • 允许指定区域可编辑
  • 锁定特定单元格、行或列

这些方法可以组合使用,为 Excel 文件建立多层保护机制,让你在共享和协作时更放心。同时,Python 自动化处理可以节省大量手动设置时间,避免操作失误。

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

相关文章

  • 详解Python中元组的三个不常用特性

    详解Python中元组的三个不常用特性

    元组是Python中一种重要的内置数据类型。与列表一样,我们经常使用元组将多个对象保存为相应的数据容器。本文为大家总结了元组的三个不常用特性,感兴趣的小伙伴可以了解一下
    2022-07-07
  • pandas按条件筛选数据的实现

    pandas按条件筛选数据的实现

    这篇文章主要介绍了pandas按条件筛选数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 使用Python制作一个简易的远控终端

    使用Python制作一个简易的远控终端

    这篇文章主要为大家详细介绍了如何使用Python语言制作一个简易的远控终端,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的可以了解一下
    2023-04-04
  • tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式

    tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式

    今天小编就为大家分享一篇tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • No module named 'plotly.graph_objects'报错解决

    No module named 'plotly.graph_objects&ap

    这篇文章主要为大家介绍了No module named 'plotly.graph_objects'报错解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Python调试代码的高效方法分享

    Python调试代码的高效方法分享

    写代码最让人抓狂的,不是逻辑想不明白,而是代码跑起来——直接爆炸,所以本文小编给大家介绍如何快速找出 Bug,并解决它们,感兴趣的小伙伴跟着小编一起来看看吧
    2025-04-04
  • 解决Python pandas df 写入excel 出现的问题

    解决Python pandas df 写入excel 出现的问题

    今天小编就为大家分享一篇解决Python pandas df 写入excel 出现的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python常见MongoDB数据库操作实例总结

    Python常见MongoDB数据库操作实例总结

    这篇文章主要介绍了Python常见MongoDB数据库操作,结合实例形式详细总结了Python针对MongoDB数据库相关pymongo库安装以及MongoDB数据库的增删改查等相关操作技巧与注意事项,需要的朋友可以参考下
    2018-07-07
  • Python itertools.product方法代码实例

    Python itertools.product方法代码实例

    这篇文章主要介绍了Python itertools.product方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 基于Python的GUI图形用户界面编程详细讲解

    基于Python的GUI图形用户界面编程详细讲解

    GUI图形用户界面编程,我们可以通过python提供的丰富的组件,快速的实现使用图形的界面和用户交互, GUI编程类似于“搭积⽊”,将⼀个个组件(Widget)放到窗⼝中,这篇文章主要给大家介绍了基于Python的GUI图形用户界面编程的相关资料,需要的朋友可以参考下
    2022-12-12

最新评论