我使用的是Excel 2013,Python 3.4.1(Anaconda 64位)和xlrd 0.9.3。
我在单元格B2
中创建了值为34的工作簿,并将B2
命名为TestName
。然后我将工作簿保存为2013版(test13.xlsx)和97-03版(test03.xls)文件。
我只能使用{97}版本文件使xlrd.Name
对象按预期工作。
例如:
import xlrd
rb_03 = xlrd.open_workbook("test03.xls")
rb_13 = xlrd.open_workbook("test13.xlsx")
nm_03 = rb_03.name_map.get("TestName".lower())[0]
nm_13 = rb_13.name_map.get("TestName".lower())[0]
print("nm_03.result:", nm_03.result) # prints: nm_03.result: Operand(kind=oREF, value=[Ref3D(coords=(0, 1, 1, 2, 1, 2))], text='Sheet1!$B$2')
print("nm_13.result:", nm_13.result) # prints: None
print(nm_03.cell()) # prints: number:34.0
print(nm_13.cell()) # fails in line 253 of xlrd/book.py with: AttributeError: 'NoneType' object has no attribute 'logfile'
这是一个错误吗?如果没有,我如何读取test13.xlsx中名为TestName
的单元格的值?