使用Python保護(hù)或加密Excel文件的7種方法
引言
Excel文件通常包含敏感信息,如財(cái)務(wù)記錄、客戶數(shù)據(jù)或?qū)S泄?。保護(hù)和加密這些文件對(duì)于防止未經(jīng)授權(quán)的訪問(wèn)和維護(hù)機(jī)密性至關(guān)重要。在本文中,我們將探討如何使用Python自動(dòng)化Excel文件的安全保護(hù)和加密過(guò)程,確保數(shù)據(jù)的安全性。主要包括以下主題:
- 使用文檔打開(kāi)密碼保護(hù) Excel 文件
- 使用文檔修改密碼保護(hù) Excel 文件
- 將 Excel 文件標(biāo)記為最終版本
- 保護(hù) Excel 工作表
- 在保護(hù) Excel 工作表的同時(shí)允許編輯某些單元格
- 鎖定 Excel 工作表中的特定單元格
- 鎖定Excel 工作表中的特定行或列
安裝Python Excel庫(kù)
在Python中,我們可以使用Spire.XLS for Python庫(kù)來(lái)保護(hù)或加密Excel文件。該庫(kù)提供了多種功能來(lái)保護(hù)和加密Excel文件,如設(shè)置密碼、應(yīng)用工作表保護(hù)、將Excel標(biāo)記為最終版本、鎖定單元格、行、列等。
你可以使用以下pip命令從PyPI安裝Spire.XLS for Python:
pip install Spire.Xls
如果不清楚如何安裝,查看這篇文檔:在Windows中安裝Spire.XLS for Python的操作指南_python_腳本之家
Python 使用文檔打開(kāi)密碼保護(hù) Excel 文件
文檔打開(kāi)密碼的主要作用是限制未經(jīng)授權(quán)的人打開(kāi)或訪問(wèn)文檔。設(shè)置了打開(kāi)密碼后,任何人都需要輸入正確的密碼才能成功打開(kāi)該Excel文件。
通過(guò)使用Spire.XLS for Python提供的Workbook.Protect()方法,可以給Excel文件設(shè)置文檔打開(kāi)密碼。關(guān)鍵步驟如下:
- 創(chuàng)建Workbook類的實(shí)例。
- 使用Workbook.LoadFromFile()方法加載Excel文件。
- 使用Workbook.Protect()方法給該Excel文件設(shè)置文檔打開(kāi)密碼。
- 使用Workbook.SaveToFile()方法保存結(jié)果文件。
完整代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建一個(gè) Workbook 對(duì)象
workbook = Workbook()
# 加載一個(gè) Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 給文件設(shè)置文檔打開(kāi)密碼
workbook.Protect("12345Open")
# 保存結(jié)果文件
workbook.SaveToFile("文檔打開(kāi)密碼.xlsx", ExcelVersion.Version2013)
workbook.Dispose()需要注意的是,文檔打開(kāi)密碼和修改密碼可以單獨(dú)設(shè)置,也可以同時(shí)設(shè)置。當(dāng)同時(shí)設(shè)置了這兩種密碼時(shí),用戶不僅需要輸入正確的打開(kāi)密碼才能打開(kāi)文件,還需要輸入正確的修改密碼才能編輯文件內(nèi)容。
Python 將 Excel 文件標(biāo)記為最終版本
當(dāng)Excel文件被標(biāo)記為最終版本后,其他用戶在打開(kāi)文件時(shí)會(huì)看到"此文件已被標(biāo)記為最終版本"的提示,從而知道不應(yīng)再對(duì)其進(jìn)行編輯。這種方式可以有效防止Excel文件被意外修改。
要將Excel文件標(biāo)記為最終版本,可以使用Workbook.CustomDocumentProperties.Add("_MarkAsFinal", True)方法。具體步驟如下:
- 創(chuàng)建Workbook類的實(shí)例。
- 使用Workbook.LoadFromFile()方法加載Excel文件。
- 使用Workbook.CustomDocumentProperties.Add("_MarkAsFinal", True)方法將該Excel文件標(biāo)記為最終版本。
- 使用Workbook.SaveToFile()方法保存結(jié)果文件。
完整代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建一個(gè) Workbook 對(duì)象
workbook = Workbook()
# 加載一個(gè) Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 將文檔標(biāo)記為最終版本
workbook.CustomDocumentProperties.Add("_MarkAsFinal", True)
# 保存結(jié)果文件
workbook.SaveToFile("最終版本.xlsx", ExcelVersion.Version2013)
workbook.Dispose()Python 保護(hù) Excel 工作表
除了保護(hù)整個(gè)Excel文件以外,Excel還支持對(duì)單個(gè)工作表進(jìn)行保護(hù),從而限制用戶對(duì)特定工作表的編輯操作。
要保護(hù)特定Excel工作表,可以使用Worksheet.Protect()方法。具體步驟如下:
- 創(chuàng)建Workbook類的實(shí)例。
- 使用Workbook.LoadFromFile()方法加載Excel文件。
- 使用Workbook.Worksheets[index]屬性獲取特定工作表。
- 使用Worksheet.Protect()方法保護(hù)該工作表。
- 使用Workbook.SaveToFile()方法保存結(jié)果文件。
完整代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建一個(gè) Workbook 對(duì)象
workbook = Workbook()
# 加載一個(gè) Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 用密碼保護(hù)工作表,并指定保護(hù)類型
sheet.Protect("Sheet111", SheetProtectionType.none)
# 保存結(jié)果文件
workbook.SaveToFile("保護(hù)工作表.xlsx", ExcelVersion.Version2013)
workbook.Dispose()Python 在保護(hù) Excel 工作表的同時(shí)允許編輯某些單元格
在保護(hù) Excel 工作表時(shí),你可以設(shè)置可編輯區(qū)域,以允許用戶編輯被保護(hù)工作表中的某些特定單元格。
要設(shè)置工作表的可編輯區(qū)域,可以使用Worksheet.AddAllowEditRange()方法。具體步驟如下:
- 創(chuàng)建Workbook類的實(shí)例。
- 使用Workbook.LoadFromFile()方法加載Excel文件。
- 使用Workbook.Worksheets[index]屬性獲取特定工作表。
- 使用Worksheet.AddAllowEditRange()方法指定保護(hù)工作表后可編輯的單元格區(qū)域。
- 使用Worksheet.Protect()方法保護(hù)該工作表。
- 使用Workbook.SaveToFile()方法保存結(jié)果文件。
完整代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建一個(gè) Workbook 對(duì)象
workbook = Workbook()
# 加載一個(gè) Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 指定可編輯的單元格區(qū)域
sheet.AddAllowEditRange("Range1", sheet.Range["B2:E11"])
# 用密碼保護(hù)工作表
sheet.Protect("Sheet111", SheetProtectionType.none)
# 保存結(jié)果文件
workbook.SaveToFile("可編輯區(qū)域.xlsx", ExcelVersion.Version2013)
workbook.Dispose()Python 鎖定 Excel 工作表中的特定單元格
如果 Excel 工作表中一些關(guān)鍵單元格包含重要的公式或數(shù)據(jù),你可以對(duì)這些單元格進(jìn)行鎖定保護(hù)。這樣可以防止普通用戶對(duì)這些關(guān)鍵單元格進(jìn)行編輯,同時(shí)仍然讓他們可以對(duì)其他單元格進(jìn)行操作。
要鎖定特定單元格,可以使用Worksheet.Range[].Style.Locked屬性。具體步驟如下:
- 創(chuàng)建Workbook類的實(shí)例。
- 使用Workbook.LoadFromFile()方法加載Excel文件。
- 使用Workbook.Worksheets[index]屬性獲取特定工作表。
- 使用Worksheet.Cells屬性獲取工作表的單元格集合。
- 循環(huán)遍歷單元格,并取消所有單元格的鎖定狀態(tài) (Excel中所有單元格的鎖定狀態(tài)默認(rèn)是選中的)。
- 使用Worksheet.Range[].Style.Locked屬性鎖定特定單元格或單元格區(qū)域。
- 使用Worksheet.Protect()方法保護(hù)該工作表。
- 使用Workbook.SaveToFile()方法保存結(jié)果文件。
完整代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建一個(gè) Workbook 對(duì)象
workbook = Workbook()
# 加載一個(gè) Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 獲取工作表的單元格集合
cellsCollection = sheet.Cells
# 循環(huán)遍歷單元格,并取消所有單元格的鎖定狀態(tài) (在Excel中,所有單元格的鎖定狀態(tài)默認(rèn)都是選中的)
for cell in cellsCollection:
cell.Style.Locked = False
# 鎖定特定的單元格區(qū)域
sheet.Range["A1:E1"].Style.Locked = True
# 用密碼保護(hù)工作表
sheet.Protect("Sheet111", SheetProtectionType.none)
# 保存結(jié)果文件
workbook.SaveToFile("鎖定單元格.xlsx", ExcelVersion.Version2013)
workbook.Dispose()Python 鎖定 Excel 工作表中的特定行或列
除了鎖定特定的單元格或區(qū)域外,你還可以鎖定整行或整列。
要鎖定特定的行或列,可以使用Worksheet.Rows[index].Style.Locked或Worksheet.Columns[index].Style.Locked屬性。具體步驟如下:
- 創(chuàng)建Workbook類的實(shí)例。
- 使用Workbook.LoadFromFile()方法加載Excel文件。
- 使用Workbook.Worksheets[index]屬性獲取特定工作表。
- 使用Worksheet.Cells屬性獲取工作表的單元格集合。
- 循環(huán)遍歷單元格,并取消所有單元格的鎖定狀態(tài) (Excel中所有單元格的鎖定狀態(tài)默認(rèn)是選中的)。
- 使用Worksheet.Rows[index].Style.Locked或Worksheet.Columns[index].Style.Locked屬性鎖定特定行或列。
- 使用Worksheet.Protect()方法保護(hù)該工作表。
- 使用Workbook.SaveToFile()方法保存結(jié)果文件。
完整代碼:
from spire.xls import *
from spire.xls.common import *
# 創(chuàng)建一個(gè) Workbook 對(duì)象
workbook = Workbook()
# 加載一個(gè) Excel 文件
workbook.LoadFromFile("測(cè)試.xlsx")
# 獲取第一個(gè)工作表
sheet = workbook.Worksheets[0]
# 獲取工作表的單元格集合
cellsCollection = sheet.Cells
# 循環(huán)遍歷單元格,并取消所有單元格的鎖定狀態(tài) (在Excel中,所有單元格的鎖定狀態(tài)默認(rèn)都是選中的)
for cell in cellsCollection:
cell.Style.Locked = False
# 鎖定第一行和第一列
sheet.Rows[0].Style.Locked = True
sheet.Columns[0].Style.Locked = True
# 用密碼保護(hù)工作表
sheet.Protect("Sheet111", SheetProtectionType.none)
# 保存結(jié)果文件
workbook.SaveToFile("鎖定行列.xlsx", ExcelVersion.Version2013)
workbook.Dispose()以上就是使用Python保護(hù)或加密Excel文件的7種不同的場(chǎng)景。希望對(duì)你有幫助。
到此這篇關(guān)于使用Python保護(hù)或加密Excel文件的7種方法的文章就介紹到這了,更多相關(guān)Python保護(hù)或加密Excel文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)的Kmeans++算法實(shí)例
這篇文章主要介紹了Kmeans和kmeans++算法,講解了Kmeans算法的缺點(diǎn)和kmeans++算法的實(shí)現(xiàn)思路,以及Python和matlab中實(shí)現(xiàn)的Kmeans++算法,需要的朋友可以參考下2014-04-04
Python黑魔法Descriptor描述符的實(shí)例解析
與迭代器和裝飾器等一樣,描述符也是Python編程中的一項(xiàng)高級(jí)技巧,這里我們就來(lái)講解Python黑魔法Descriptor描述符的實(shí)例解析:2016-06-06
Python利用pandas計(jì)算多個(gè)CSV文件數(shù)據(jù)值的實(shí)例
下面小編就為大家分享一篇Python利用pandas計(jì)算多個(gè)CSV文件數(shù)據(jù)值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
pytorch 實(shí)現(xiàn)在一個(gè)優(yōu)化器中設(shè)置多個(gè)網(wǎng)絡(luò)參數(shù)的例子
今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)在一個(gè)優(yōu)化器中設(shè)置多個(gè)網(wǎng)絡(luò)參數(shù)的例子,具有很好參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02

