我们从客户那里得到了一个开启了打开保护和写保留保护的Excel文件。我想去掉这些保护,以便可以使用Python xlrd模块打开Excel文件。我安装了pywin32软件包来通过COM访问Excel文件,并且我可以在程序中提供两个密码打开文件,保存并关闭文件而没有错误。我正在使用MSDN网络描述的取消保护命令,它们没有失败,但也没有去除保护。保存后的文件仍然需要两个密码才能打开。这是我目前的进展:
有人能提供一下正确的解除保护命令语法吗?
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()
有人能提供一下正确的解除保护命令语法吗?
SaveAs
并将空字符串传递给Password
和WriteResPassword
参数。http://msdn.microsoft.com/en-us/library/office/ff841185(v=office.15).aspx - Tim Williams