我們從打開保護功能並啓用了寫入預留保護的客戶端獲取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