TypeError when opening file with Read-Only Recommended bit set.
*Created originally on Bitbucket by [lengau](https://bitbucket.org/%7B7df0a300-736c-4004-9676-36ef628f6a8d%7D/)* In 2.4.x of openpyxl, I get a TypeError when trying to open an Excel file with the "Read-only Recommended" option set. This is not the case in the 2.3.x series. The following is from 2.4.0, but the same occurs with 2.4.1. ``` #!text --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-2-3b5a028bcc7f> in <module>() 1 import openpyxl ----> 2 openpyxl.load_workbook('Book1.xlsx') /home/alowe/anaconda3/envs/test/lib/python3.5/site-packages/openpyxl/reader/excel.py in load_workbook(filename, read_only, keep_vba, data_only, guess_types, keep_links) 159 wb._keep_links = keep_links 160 wb.guess_types = guess_types --> 161 parser.parse() 162 wb._sheets = [] 163 /home/alowe/anaconda3/envs/test/lib/python3.5/site-packages/openpyxl/packaging/workbook.py in parse(self) 39 src = self.archive.read(ARC_WORKBOOK) 40 node = fromstring(src) ---> 41 package = WorkbookPackage.from_tree(node) 42 if package.properties.date1904: 43 self.wb.excel_base_date = CALENDAR_MAC_1904 /home/alowe/anaconda3/envs/test/lib/python3.5/site-packages/openpyxl/descriptors/serialisable.py in from_tree(cls, node) 74 if hasattr(desc.expected_type, "from_tree"): 75 #complex type ---> 76 obj = desc.expected_type.from_tree(el) 77 else: 78 #primitive /home/alowe/anaconda3/envs/test/lib/python3.5/site-packages/openpyxl/descriptors/serialisable.py in from_tree(cls, node) 87 attrib[tag] = obj 88 ---> 89 return cls(**attrib) 90 91 /home/alowe/anaconda3/envs/test/lib/python3.5/site-packages/openpyxl/workbook/protection.py in __init__(self, readOnlyRecommended, userName, reservationPassword, algorithmName, hashValue, saltValue, spinCount) 106 ): 107 self.readOnlyRecommended = readOnlyRecommended --> 108 self.userName = userName 109 self.reservationPassword = reservationPassword 110 self.algorithmName = algorithmName /home/alowe/anaconda3/envs/test/lib/python3.5/site-packages/openpyxl/descriptors/base.py in __set__(self, instance, value) 42 if (not self.allow_none 43 or (self.allow_none and value is not None)): ---> 44 raise TypeError('expected ' + str(self.expected_type)) 45 super(Typed, self).__set__(instance, value) 46 TypeError: expected <class 'str'> ``` *Attachments:* [Book1.xlsx](/uploads/d0a679a97683234a6edc200b97a94f6e/Book1.xlsx)
issue