You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用openpyxl删除Excel局部作用域的命名范围

openpyxl删除Excel工作表级局部命名范围的方法

出现报错的原因是:工作簿级全局命名范围存储在wb.defined_names集合中,而工作表级局部命名范围单独存储在对应工作表的defined_names属性下,不属于工作簿全局命名范围集合,因此直接在工作簿维度查找局部命名范围会触发KeyError。

你可以根据自己的需求选择以下两种删除方案:

  • 已知局部命名范围所属的工作表
    直接定位到对应工作表后执行删除即可,示例代码如下:

    # 替换为你实际的工作表名称
    target_sheet = wb["Sheet1"]
    del target_sheet.defined_names["Date"]
    
  • 不清楚局部命名范围所属的工作表
    遍历所有工作表匹配目标命名范围后删除,示例代码如下:

    target_range_name = "Date"
    for sheet in wb.worksheets:
        if target_range_name in sheet.defined_names:
            del sheet.defined_names[target_range_name]
            # 确认全局只有一个对应名称的局部范围时可提前终止遍历
            break
    

删除完成后你可以分别打印工作簿和对应工作表的defined_names.keys()验证删除结果。


内容的提问来源于stack exchange,提问作者Tim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:54:02