Мы получаем файл Excel от клиента с открытой защитой и защитой Write Reserve. Я хочу удалить защиту, чтобы я мог открыть файл Excel с помощью модуля python xlrd. Я установил пакет pywin32 для доступа к файлу Excel через COM, и я могу открыть его с моей программой, поставляющей два пароля, сохранить и закрыть файл без ошибок. Я использую команды Unprotect, как описано в сети 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()
Может ли кто-нибудь предоставить мне правильный синтаксис для команд unprotect, которые будут работать?
Разобрался как редактировать вопрос и добавить теги; по-прежнему нужна помощь с основным вопросом. – JimR
Я думаю, вы можете использовать 'SaveAs' и передать пустые строки параметрам' Password' и 'WriteResPassword' http://msdn.microsoft.com/en-us/library/office/ff841185(v=office.15). aspx –