Openpyxl:列出工作簿的所有定义名称

问题描述 投票:0回答:2

我正在尝试跨多个工作表读取 xlsx 工作簿中命名范围中包含的所有数据,但出于本练习的目的,我不知道任何命名范围的名称将提前是什么。

我可以访问

wb.defined_names
但这会返回一个 DefinedNameList;如果我尝试迭代它,我似乎无法访问下面的任何数据。

如何以字符串列表的形式访问命名范围的名称和相应的单元格引用?

上下文:到目前为止,我一直在使用 xlwings 实现这一目标,但是当我打开其他 wb 选项卡时,xlwings 打开 wb 会出现问题。如果我能解决这个问题,切换到 openpyxl 似乎是一个很好的解决方案

python openpyxl
2个回答
10
投票
[dn for dn in wb.defined_names.definedName]

0
投票

对于 Openpyxl 版本 >3.1.0 尝试这个简单的命令。

excel_file_path = r"sheet.xlsx"
wb = load_workbook(excel_file_path)
Name_Ranges = list(wb.defined_names)# all name ranges in this list
print(Name_Ranges)
© www.soinside.com 2019 - 2024. All rights reserved.