我们从打开保护功能并启用了写入预留保护的客户端获取Excel文件。我想删除保护,所以我可以用python xlrd模块打开Excel文件。我已经安装了pywin32包以通过COM访问Excel文件,并且可以使用提供两个密码的程序打开它,保存并关闭文件,而不会出错。我正在使用MSDN网络中描述的解除保护命令,但它们并没有失败,但它们也没有取消保护。我的程序完成后,保存的文件仍然需要两个密码才能打开它。这是我到目前为止:通过编程解除Excel文件的保护
import os, sys
impdir = "\\\\xxx.x.xx.x\\allshare\\IT\\NewBusiness\\Python_Dev\\import\\"
sys.path.append(impdir)
from UsefulFunctions import *
import win32com.client
wkgdir = pjoin(nbShare, 'NorthLake\\_testing')
filename = getFilename(wkgdir, '*Collections*.xls*')
xcl = win32com.client.Dispatch('Excel.Application')
xcl.visible = True
pw_str = raw_input("Enter password: ")
try:
wb = xcl.workbooks.open(filename, 0, False, None, pw_str, pw_str)
except Exception as e:
print "Error:", str(e)
sys.exit()
wb.Unprotect(pw_str)
wb.UnprotectSharing(pw_str)
wb.Save()
xcl.Quit()
任何人都可以提供正确的语法解除保护命令,将工作吗?
想出如何修改的问题,添加标签;还有主要问题需要帮助。 – JimR 2014-12-18 22:33:43
我想你可以使用'SaveAs'并将空字符串传递给'Password'和'WriteResPassword'参数http://msdn.microsoft.com/en-us/library/office/ff841185(v=office.15)。 aspx – 2014-12-19 00:55:02