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