我们正在从具有打开保护并已启用写保留保护的客户端获取Excel文件。我想删除保护,因此可以使用python xlrd模块打开Excel文件。我已经安装了pywin32软件包以通过COM访问Excel文件,并且可以使用提供两个密码的程序打开它,保存并关闭文件而不会出现任何错误。我使用的是MSDN网络中所述的Unprotect命令,它们没有失败,但也没有删除保护。程序完成后,保存的文件仍然需要两个密码才能打开它。这是我到目前为止的内容:
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()
任何人都可以为我提供正确的语法来取消保护的命令吗?
@Tim Williams的建议奏效了。(使用SaveAs并为Password和WriteResPassword参数传递空字符串。)我在文件名后使用'None'作为'format'参数,并且使用新的文件名来防止Excel提示我是否确定要覆盖现有文件。我还发现我不需要使用这种方法进行wb.Unprotect和wb.UnprotectSharing调用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句