【发布时间】:2019-06-21 15:29:46
【问题描述】:
我正在使用 openpyxl 读取 Excel 工作表。它在迭代和解析行时抛出 KeyError,因为 openxml 行元素没有引用属性 ('r')。它只有一个样式索引('s')和'customFormat'。
Openxml spreadsheet attributes
如何读取此文件中的单元格?
无论工作簿是否以只读方式打开,以及引用单元格的方式不同,都会发生错误,因为它们都调用openpyxl.worksheet._reader.parse_row()
不能分享excel工作簿,但是python代码很简单。
wb = load_workbook(filename)
ws = wb['Sheet1']
print(ws['A1'])
错误:
File "openpyxl\worksheet\_reader.py", line 150, in parse
row = self.parse_row(element)
File "openpyxl\worksheet\_reader.py", line 272, in parse_row
self.row_dimensions[attrs['r']] = attrs
KeyError: 'r'
从调试器:
row = {Element} <Element '{http://schemas.openxmlformats.org/spreadsheetml/2006/main}row' at 0x000002713782E9F8>
attrib = {dict} <class 'dict'>: {'s': '148', 'customFormat': '1'}
tag = {str} '{http://schemas.openxmlformats.org/spreadsheetml/2006/main}row'
tail = {NoneType} None
text = {NoneType} None
【问题讨论】:
-
我认为您必须为此修补源代码。