У меня есть книга Excel, которая содержит несколько листов. Некоторые листы защищены. В openpyxl я хочу проверить, какие листы защищены, а какие нет. Кто-нибудь знает, как это сделать с openpyxl?
Чтобы проиллюстрировать это, я создал тестовую книгу с тремя листами и защитил одну из них без, а другую с паролем. При доступе к рабочим листам с помощью openpyxl я не вижу разницы и не могу определить, защищен ли лист или нет. Я не имел значения, защищал ли я листы паролем или нет.
wb=xls.open('protection_test.xlsx')
u=wb['unprotected']
p=wb['protected']
ppw=wb['protected_with_password']
print(u.protection)
> <openpyxl.worksheet.protection.SheetProtection object>
> Parameters:
> selectLockedCells=False, selectUnlockedCells=False, algorithmName=None, sheet=False, objects=False, insertRows=True, insertHyperlinks=True, autoFilter=True, scenarios=False, formatColumns=True, deleteColumns=True, insertColumns=True, pivotTables=True, deleteRows=True, formatCells=True, saltValue=None, formatRows=True, sort=True, spinCount=None, password=None, hashValue=None
print(p.protection)
> <openpyxl.worksheet.protection.SheetProtection object>
> Parameters:
> selectLockedCells=False, selectUnlockedCells=False, algorithmName=None, sheet=False, objects=False, insertRows=True, insertHyperlinks=True, autoFilter=True, scenarios=False, formatColumns=True, deleteColumns=True, insertColumns=True, pivotTables=True, deleteRows=True, formatCells=True, saltValue=None, formatRows=True, sort=True, spinCount=None, password=None, hashValue=None
print(ppw.protection)
> <openpyxl.worksheet.protection.SheetProtection object>
> Parameters:
> selectLockedCells=False, selectUnlockedCells=False, algorithmName=None, sheet=False, objects=False, insertRows=True, insertHyperlinks=True, autoFilter=True, scenarios=False, formatColumns=True, deleteColumns=True, insertColumns=True, pivotTables=True, deleteRows=True, formatCells=True, saltValue=None, formatRows=True, sort=True, spinCount=None, password=None, hashValue=None
p.protection==u.protection
> True
ppw.protection==u.protection
> True
Я использую Python Python 3.7.3 и openpyxl 3.0.0