-
Notifications
You must be signed in to change notification settings - Fork 22
open_workbook throws KeyError(None) when workbook contains sheet with rId being None #48
Copy link
Copy link
Open
Description
When a workbook contains sheet with rId being None, open_workbook throws KeyError(None).
Related code:
Lines 43 to 47 in 7dca940
| for item in reader: | |
| if item[0] == biff12.SHEET: | |
| self._sheets.append((item[1].name, rels[item[1].rId])) | |
| elif item[0] == biff12.SHEETS_END: | |
| break |
And some debug output:
for item in reader:
print(item)
(387, 'workbook')
(399, 'sheets')
(412, sheet(sheetId=28, rId=None, name=None))
(412, sheet(sheetId=2, rId='rId1', name='*'))
(412, sheet(sheetId=13, rId='rId2', name='*'))
(412, sheet(sheetId=15, rId='rId3', name='*'))
(412, sheet(sheetId=16, rId='rId4', name='*'))
(412, sheet(sheetId=23, rId='rId5', name='*'))
(412, sheet(sheetId=21, rId='rId6', name='*'))
(412, sheet(sheetId=22, rId='rId7', name='*'))
(412, sheet(sheetId=18, rId='rId8', name='*'))
(412, sheet(sheetId=25, rId='rId9', name='*'))
(412, sheet(sheetId=7, rId='rId10', name='*'))
(412, sheet(sheetId=24, rId='rId11', name='*'))
(412, sheet(sheetId=27, rId='rId12', name='*'))
(412, sheet(sheetId=11, rId='rId13', name='*'))
(412, sheet(sheetId=5, rId='rId14', name='*'))
(400, '/sheets')
(I've masked all sheet names with values as '*'.)
For now, I don't know how to recreate such a *.xlsb file from scratch, and can't share the file I have due to confidentiality reasons. Hopefully the debug output is enough for anyone interested to identify the problem.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels