如何使用openpyxl通过DefinedName获取单元格内容?

时间:2017-03-17 03:14:30

标签: python openpyxl

例如,单元格的坐标为A1,使用DefinedName name="cat"设置coordinate='A1'。然后,我想通过cell阅读DefinedName "cat"中的内容。但它似乎不受支持。还有其他方法可以帮忙吗? See here for example picture

from openpyxl import load_workbook
wb = load_workbook(filename="test.xlsx")
ws = wb['Sheet1']
cat = ws['cat'].value

1 个答案:

答案 0 :(得分:0)

我如何找到答案

我不知道excel的功能。所以我'将单元格A1命名为cat并保存文件。我通过rar文件解压缩了文件。在cat中找到xl/workbook.xml,原始内容为<definedName name="cat">工作表1!$A$1</definedName>。它是一个名为definedName的元素,其属性为name,其内容由工作表的title和单元格coordinate组成。因此该函数称为defined name或相关的东西。我在official doc

中找到了它

<强>答案

from openpyxl import load_workbook
wb = load_workbook(filename="test.xlsx")

# get DefinedNameList instance
defined_names_cat = wb.defined_names['cat']

# get destinations which is a generator
destinations_cat = defined_names_cat.destinations  
values = {}
for sheet_title, coordinate in destinations_cat:
    values.update({sheet_title: wb[sheet_title][coordinate].value})
my_value = values.get('Sheet1')