Reduce memory footprint
Several possible improvements to reduce the memory footprint of worksheets:
- only assign styles where required. Currently when reading files StyleArrays are always created
- set keep_links=False by default
- cell.data_type can be implemented as a cached property
- cells can be stored without coordinates. The current Cell object can be returned from ws.cell but something smaller could actually be stored in ws._cells. Probably a toss up between a StoredCell and a dictionary. Hyperlinks and comments could possibly be rewritten to be stored on the worksheet.
- use slots for serialisable objects. In most workbooks the number of serialisable objects is relatively small but external links and other caches can have a great many. Descriptors themselves don't pose a problem because they are bound to the classes, not the istances.