openpyxl - 问题访问命名范围?
openpyxl - issue accessing named range?
所以我一直在关注 openpyxl here 的文档,并希望在新工作簿中创建一个命名范围,并尝试使用它并了解它是如何工作的。遗憾的是,我遇到了一个错误,我不确定这个错误是什么意思。
下面是代码:
import openpyxl
# create workbook
wb = openpyxl.Workbook()
# create named range
new_range = openpyxl.workbook.defined_name.DefinedName('newrange',attr_text='Sheet$A:$A')
wb.defined_names.append(new_range)
list(wb.defined_names['newrange'].destinations)
这里是错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in
2 new_range = openpyxl.workbook.defined_name.DefinedName('newrange',attr_text='Sheet$A:$A')
3 wb.defined_names.append(new_range)
----> 4 list(wb.defined_names['newrange'].destinations)
~/.local/lib/python3.8/site-packages/openpyxl/workbook/defined_name.py in destinations(self)
138 if part.subtype == "RANGE":
139 m = SHEETRANGE_RE.match(part.value)
--> 140 sheetname = m.group('notquoted') or m.group('quoted')
141 yield sheetname, m.group('cells')
142
AttributeError: 'NoneType' object has no attribute 'group'
有什么想法吗?遍历生成器会出现相同的错误。
根据 docs:
my_range = wb.defined_names['my_range']
# if this contains a range of cells then the destinations attribute is not None
dests = my_range.destinations # returns a generator of (worksheet title, cell range) tuples
这意味着 destinations
将 return 生成一个范围。但是,您给出的范围 returns None
使其成为 NoneType
。因此,您没有给出合适的范围,或者不包含单元格区域的范围。
已解决。问题是缺少“!”:
new_range = openpyxl.workbook.defined_name.DefinedName('newrange',attr_text='Sheet$A:$A')
应该是:
new_range = openpyxl.workbook.defined_name.DefinedName('newrange',attr_text='Sheet!$A:$A')
所以我一直在关注 openpyxl here 的文档,并希望在新工作簿中创建一个命名范围,并尝试使用它并了解它是如何工作的。遗憾的是,我遇到了一个错误,我不确定这个错误是什么意思。
下面是代码:
import openpyxl
# create workbook
wb = openpyxl.Workbook()
# create named range
new_range = openpyxl.workbook.defined_name.DefinedName('newrange',attr_text='Sheet$A:$A')
wb.defined_names.append(new_range)
list(wb.defined_names['newrange'].destinations)
这里是错误:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in
2 new_range = openpyxl.workbook.defined_name.DefinedName('newrange',attr_text='Sheet$A:$A')
3 wb.defined_names.append(new_range)
----> 4 list(wb.defined_names['newrange'].destinations)
~/.local/lib/python3.8/site-packages/openpyxl/workbook/defined_name.py in destinations(self)
138 if part.subtype == "RANGE":
139 m = SHEETRANGE_RE.match(part.value)
--> 140 sheetname = m.group('notquoted') or m.group('quoted')
141 yield sheetname, m.group('cells')
142
AttributeError: 'NoneType' object has no attribute 'group'
有什么想法吗?遍历生成器会出现相同的错误。
根据 docs:
my_range = wb.defined_names['my_range']
# if this contains a range of cells then the destinations attribute is not None
dests = my_range.destinations # returns a generator of (worksheet title, cell range) tuples
这意味着 destinations
将 return 生成一个范围。但是,您给出的范围 returns None
使其成为 NoneType
。因此,您没有给出合适的范围,或者不包含单元格区域的范围。
已解决。问题是缺少“!”:
new_range = openpyxl.workbook.defined_name.DefinedName('newrange',attr_text='Sheet$A:$A')
应该是:
new_range = openpyxl.workbook.defined_name.DefinedName('newrange',attr_text='Sheet!$A:$A')