首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用python加密excel工作簿工作表

用python加密excel工作簿工作表
EN

Stack Overflow用户
提问于 2018-07-26 18:47:39
回答 1查看 4K关注 0票数 0

我目前正在实现一个工具来自动化我的日常工作的一部分。因此,我需要创建一个python工具,创建一个包含多个信息的excel文件(工作簿),并对文件的工作表进行加密。创建文件并填充数据的第一部分工作得很好。

但是加密根本不起作用。我使用的是win32com、win32com.client和openpyxl。工作簿有两个不同的工作表,分别名为“%1”和“%2”。

我的工作簿:

代码语言:javascript
复制
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)

因此,我搜索了其他主题,得到了以下内容:

代码语言:javascript
复制
import openpyxl    
sheet.protection.set_password('test') 
sheet.save(saving_path) 

不幸的是,这不起作用。我的外壳响应一个AttributeError。详细说明:

代码语言:javascript
复制
AttributeError: <unknown>.set_password

有没有人知道用python加密excel中的页面的另一种方法?

非常感谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 05:06:03

不完全清楚您所说的“加密表”是什么意思,因为您引用的openpyxl代码与加密无关;请参阅the documentation中的警告。不过,Excel确实支持对整个工作簿进行加密,但这似乎与您想要的不同。

在任何情况下,您的代码都会失败,因为您从win32com获得的sheetopenpyxl期望的截然不同。例如,基于COM的sheet需要运行Excel进程才能进行操作,而openpyxl甚至不需要在主机上提供Excel。

现在,在您的特定情况下,您实际上不需要openpyxl (尽管您可能会发现在win32com上使用它有很多好处),并且您可以完全停留在COM中。因此,可以通过Worksheet.Protect添加密码保护,在您的情况下,这可以归结为简单地运行

代码语言:javascript
复制
sheet.Protect('test')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51537016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档