簡體   English   中英

用python加密excel工作簿表

[英]encrypting excel workbook sheet with python

我目前正在實現一種工具,可以使日常工作自動化。 因此,我需要創建一個python工具,該工具可以創建包含多個信息的excel文件(工作簿)並加密文件的工作表。 創建文件並用數據填充文件的第一部分可以正常工作。

但是加密根本不起作用。 我正在使用win32com,win32com.client和openpyxl。 該工作簿有兩個不同的工作表,分別為“ 1”和“ 2”。

我的工作簿:

import win32com.client
import os, sys, win32com, os.path, time

excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = True
workbook = excel.Workbooks.Open(reading_path) ####this is the path where the file is stored
sheet = workbook.Worksheets(1)

因此,我搜索了其他主題並獲得了以下內容:

import openpyxl    
sheet.protection.set_password('test') 
sheet.save(saving_path) 

不幸的是,這不起作用...我的shell響應AttributeError。 詳細:

AttributeError: <unknown>.set_password

有人知道另一種方法如何使用python僅加密excel中的頁面嗎?

非常感謝你的幫助!

尚不清楚“加密工作表”是什么意思,因為您引用的openpyxl代碼與加密無關。 請參閱文檔中的警告。 Excel確實支持整個工作簿的加密,但這似乎與您想要的不同。

在任何情況下,你的代碼失敗,因為sheet你得到win32com是一個完全不同的野獸比openpyxl預期。 例如, sheet基於COM的存在需要一個Excel進程來運行用於操作成為可能,而openpyxl甚至不要求的Excel可用在主機上。

現在,在您的特定情況下,您實際上並不需要openpyxl (盡管您可能會發現通過win32com使用它有很多好處),並且您可以完全留在COM中。 這樣,可以通過Worksheet.Protect添加密碼保護,在您的情況下,可以簡化為簡單運行

sheet.Protect('test')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM