使用Python保護(hù)或加密Excel文件的7種方法
引言
Excel文件通常包含敏感信息,如財(cái)務(wù)記錄、客戶數(shù)據(jù)或?qū)S泄?。保護(hù)和加密這些文件對于防止未經(jīng)授權(quán)的訪問和維護(hù)機(jī)密性至關(guān)重要。在本文中,我們將探討如何使用Python自動化Excel文件的安全保護(hù)和加密過程,確保數(shù)據(jù)的安全性。主要包括以下主題:
- 使用文檔打開密碼保護(hù) Excel 文件
- 使用文檔修改密碼保護(hù) Excel 文件
- 將 Excel 文件標(biāo)記為最終版本
- 保護(hù) Excel 工作表
- 在保護(hù) Excel 工作表的同時允許編輯某些單元格
- 鎖定 Excel 工作表中的特定單元格
- 鎖定Excel 工作表中的特定行或列
安裝Python Excel庫
在Python中,我們可以使用Spire.XLS for Python庫來保護(hù)或加密Excel文件。該庫提供了多種功能來保護(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 使用文檔打開密碼保護(hù) Excel 文件
文檔打開密碼的主要作用是限制未經(jīng)授權(quán)的人打開或訪問文檔。設(shè)置了打開密碼后,任何人都需要輸入正確的密碼才能成功打開該Excel文件。
通過使用Spire.XLS for Python提供的Workbook.Protect()方法,可以給Excel文件設(shè)置文檔打開密碼。關(guān)鍵步驟如下:
- 創(chuàng)建Workbook類的實(shí)例。
- 使用Workbook.LoadFromFile()方法加載Excel文件。
- 使用Workbook.Protect()方法給該Excel文件設(shè)置文檔打開密碼。
- 使用Workbook.SaveToFile()方法保存結(jié)果文件。
完整代碼:
from spire.xls import * from spire.xls.common import * # 創(chuàng)建一個 Workbook 對象 workbook = Workbook() # 加載一個 Excel 文件 workbook.LoadFromFile("測試.xlsx") # 給文件設(shè)置文檔打開密碼 workbook.Protect("12345Open") # 保存結(jié)果文件 workbook.SaveToFile("文檔打開密碼.xlsx", ExcelVersion.Version2013) workbook.Dispose()
需要注意的是,文檔打開密碼和修改密碼可以單獨(dú)設(shè)置,也可以同時設(shè)置。當(dāng)同時設(shè)置了這兩種密碼時,用戶不僅需要輸入正確的打開密碼才能打開文件,還需要輸入正確的修改密碼才能編輯文件內(nèi)容。
Python 將 Excel 文件標(biāo)記為最終版本
當(dāng)Excel文件被標(biāo)記為最終版本后,其他用戶在打開文件時會看到"此文件已被標(biāo)記為最終版本"的提示,從而知道不應(yīng)再對其進(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)建一個 Workbook 對象 workbook = Workbook() # 加載一個 Excel 文件 workbook.LoadFromFile("測試.xlsx") # 將文檔標(biāo)記為最終版本 workbook.CustomDocumentProperties.Add("_MarkAsFinal", True) # 保存結(jié)果文件 workbook.SaveToFile("最終版本.xlsx", ExcelVersion.Version2013) workbook.Dispose()
Python 保護(hù) Excel 工作表
除了保護(hù)整個Excel文件以外,Excel還支持對單個工作表進(jìn)行保護(hù),從而限制用戶對特定工作表的編輯操作。
要保護(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)建一個 Workbook 對象 workbook = Workbook() # 加載一個 Excel 文件 workbook.LoadFromFile("測試.xlsx") # 獲取第一個工作表 sheet = workbook.Worksheets[0] # 用密碼保護(hù)工作表,并指定保護(hù)類型 sheet.Protect("Sheet111", SheetProtectionType.none) # 保存結(jié)果文件 workbook.SaveToFile("保護(hù)工作表.xlsx", ExcelVersion.Version2013) workbook.Dispose()
Python 在保護(hù) Excel 工作表的同時允許編輯某些單元格
在保護(hù) Excel 工作表時,你可以設(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)建一個 Workbook 對象 workbook = Workbook() # 加載一個 Excel 文件 workbook.LoadFromFile("測試.xlsx") # 獲取第一個工作表 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ù),你可以對這些單元格進(jìn)行鎖定保護(hù)。這樣可以防止普通用戶對這些關(guān)鍵單元格進(jìn)行編輯,同時仍然讓他們可以對其他單元格進(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)建一個 Workbook 對象 workbook = Workbook() # 加載一個 Excel 文件 workbook.LoadFromFile("測試.xlsx") # 獲取第一個工作表 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)建一個 Workbook 對象 workbook = Workbook() # 加載一個 Excel 文件 workbook.LoadFromFile("測試.xlsx") # 獲取第一個工作表 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種不同的場景。希望對你有幫助。
到此這篇關(guān)于使用Python保護(hù)或加密Excel文件的7種方法的文章就介紹到這了,更多相關(guān)Python保護(hù)或加密Excel文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Python3之?dāng)?shù)據(jù)指紋MD5校驗(yàn)與對比
這篇文章主要介紹了Python3之?dāng)?shù)據(jù)指紋MD5校驗(yàn)與對比,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06M1 mac安裝PyTorch的實(shí)現(xiàn)步驟
本文將介紹如何在M1機(jī)器上本地安裝和運(yùn)行PyTorch。你使用的M1機(jī)型(Air、Pro、Mini或iMac)沒有區(qū)別。感興趣的可以了解一下2021-08-08PyTorch?TensorFlow機(jī)器學(xué)習(xí)框架選擇實(shí)戰(zhàn)
這篇文章主要為大家介紹了PyTorch?TensorFlow機(jī)器學(xué)習(xí)框架選擇實(shí)戰(zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10Python實(shí)現(xiàn)動態(tài)循環(huán)輸出文字功能
這篇文章主要介紹了Python實(shí)現(xiàn)動態(tài)循環(huán)輸出文字功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05

Python連接MySQL數(shù)據(jù)庫的簡單便捷方法

Django集成Celery之狀態(tài)監(jiān)控與任務(wù)管理詳解