我还没有找到太多关于使用 Python 创建受密码保护的 Excel 文件的主题。
在Openpyxl中,我确实找到了一个SheetProtection
模块使用:
from openpyxl.worksheet import SheetProtection
然而,问题是我不知道如何使用它。它不是一个属性Workbook
or Worksheet
所以我不能这样做:
wb = Workbook()
ws = wb.worksheets[0]
ws_encrypted = ws.SheetProtection()
ws_encrypted.password = 'test'
...
有谁知道Python是否可以实现这样的请求?谢谢!
这是我使用的解决方法。它生成一个 VBS 脚本并从 python 脚本中调用它。
def set_password(excel_file_path, pw):
from pathlib import Path
excel_file_path = Path(excel_file_path)
vbs_script = \
f"""' Save with password required upon opening
Set excel_object = CreateObject("Excel.Application")
Set workbook = excel_object.Workbooks.Open("{excel_file_path}")
excel_object.DisplayAlerts = False
excel_object.Visible = False
workbook.SaveAs "{excel_file_path}",, "{pw}"
excel_object.Application.Quit
"""
# write
vbs_script_path = excel_file_path.parent.joinpath("set_pw.vbs")
with open(vbs_script_path, "w") as file:
file.write(vbs_script)
#execute
subprocess.call(['cscript.exe', str(vbs_script_path)])
# remove
vbs_script_path.unlink()
return None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)