基于Python实现创建、修改或删除Excel命名区域

 更新时间:2025年10月21日 08:26:25   作者:Eiceblue  
Excel命名区域是电子表格中一个重要的功能,它允许用户为单元格或单元格范围分配有意义的名称,本文将详细介绍如何使用Free Spire.XLS for Python 进行创建,编辑和删除命名区域等操作

Excel命名区域是电子表格中一个重要的功能,它允许用户为单元格或单元格范围分配有意义的名称,从而简化公式引用和提高电子表格的可读性。Free Spire.XLS for Python 是一款用于操作Excel的免费轻量级库,其 API 设计简洁,支持创建、编辑和删除命名区域等操作。本文将详细介绍如何使用该库进行这些操作。

1 Excel 命名区域的技术价值

命名区域通过自定义标识符(如 SalesData)替代传统单元格引用(如 A1:D10),带来三大优势:

  • 提升公式可读性SUM(SalesData) 远比 SUM(A1:D10) 直观
  • 简化跨表引用:跨工作表引用时无需重复书写工作表名称
  • 增强维护性:修改区域范围时无需调整所有关联公式

2 环境准备

安装免费库:pip install Spire.XLS.Free

核心类导入:

from spire.xls import *
from spire.xls.common import *

注意:免费版本有部分限制(如最大行数)

3. 核心操作实现 - Python 代码示例

以下将分创建、编辑、删除三个场景,提供完整代码示例及关键步骤解析。

3.1 创建 Excel 命名区域

创建命名区域需指定核心参数:引用范围命名名称,支持命名单个单元格、连续区域。

代码示例:

# 创建工作簿并加载Excel文档
workbook = Workbook()
workbook.LoadFromFile("库存.xlsx")

# 获取第一个工作表
worksheet = workbook.Worksheets[0]  # 索引从0开始

# 创建命名区域
# 1. 连续区域
named_range = workbook.NameRanges.Add("库存数据")
named_range.RefersToRange = worksheet.Range["D1:E11"]

# 2. 单个单元格
named_range = workbook.NameRanges.Add("产品名称")
named_range.RefersToRange = worksheet.Range["A1"]

# 保存文件,路径可自定义
workbook.SaveToFile("命名区域.xlsx")
workbook.Dispose()  # 释放资源

效果图:

3.2 修改 Excel 命名区域

编辑操作主要分为 “修改命名名称” 和 “修改引用区域” 两类,需先通过名称或索引获取已有的命名区域对象。

# 打开已包含命名区域的Excel文件
workbook = Workbook()
workbook.LoadFromFile("命名区域.xlsx")

# 方式1:获取命名区域
namedRange = workbook.NameRanges["库存数据"] # 方式1:通过名称获取
# namedRange2 = workbook.NameRanges[0] # 方式2:通过索引获取

# 修改引用区域和命名名称
namedRange.RefersToRange = workbook.Worksheets[0].Range["E1:E11"]  # 新引用区域
namedRange.Name = "核心数据"  # 新名称

# 保存修改后的文件(可覆盖原文件或另存为新文件)
workbook.SaveToFile("修改命名区域.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

关键解析:

  • Worksheet.NameRanges["名称"]:通过命名直接定位目标区域,适合明确名称的场景。
  • Worksheet.NameRanges[索引]:通过索引定位(按创建顺序排序),适合批量操作或名称不明确的场景。
  • 修改名称时需确保新名称未被占用,否则会抛出重复命名错误。

3.3 删除 Excel 命名区域

对于无用的命名区域,可通过代码删除,避免文件冗余。以下为删除单个命名区域的代码。

# 打开文件
workbook = Workbook()
workbook.LoadFromFile("命名区域.xlsx")

# 获取第一张工作表
worksheet = workbook.Worksheets[0]

# 删除指定的命名区域
workbook.NameRanges.RemoveAt(0) # 按索引删除
# workbook.NameRanges.Remove("库存数据"); #按名称删除

# 保存删除后的文件
workbook.SaveToFile("删除命名区域.xlsx")
workbook.Dispose()

如需批量删除所有命名区域,使用:

# 删除所有命名区域(遍历并删除)
totalNames = workbook.NameRanges.Count  # 获取命名区域总数
for i in range(totalNames - 1, -1, -1):  # 倒序删除,避免索引错乱
    workbook.NameRanges.RemoveAt(i)

批量删除需倒序遍历(从最后一个索引到 0),若正序删除,删除前一个区域后,后续区域索引会前移,导致漏删或报错。

4. 注意事项

1.引用格式规范

区域引用需严格使用 Excel 格式(如"A1:C5"),不可使用中文冒号或其他符号,否则会导致引用失效。

2.文件权限与路径

保存 / 打开文件时,需确保目标路径有读写权限(如避免直接写入系统盘根目录),路径建议使用绝对路径(如"C:/Files/Test.xlsx"),减少相对路径引发的定位错误。

3.大型文件优化

若操作包含大量命名区域的 Excel 文件,建议在完成所有操作后统一保存,避免频繁保存导致性能损耗。

通过 Free Spire.XLS for Python,我们可以用简洁的代码实现 Excel 命名区域的创建、编辑和删除,从而提高Excel文件的可读性和维护性。该免费库还支持更多 Excel 高级功能(如图表生成、数据透 视表、单元格格式设置),适合用于数据处理等自动化场景。

到此这篇关于基于Python实现创建、修改或删除Excel命名区域的文章就介绍到这了,更多相关Python Excel命名区域操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python编写小程序探测linux端口占用情况

    python编写小程序探测linux端口占用情况

    这篇文章主要介绍了python编写小程序探测linux端口占用情况,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-12-12
  • 翻转数列python实现,求前n项和,并能输出整个数列的案例

    翻转数列python实现,求前n项和,并能输出整个数列的案例

    这篇文章主要介绍了翻转数列python实现,求前n项和,并能输出整个数列的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 使用tensorflow实现线性svm

    使用tensorflow实现线性svm

    这篇文章主要为大家详细介绍了使用tensorflow实现线性svm的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • python中sleep函数用法实例分析

    python中sleep函数用法实例分析

    这篇文章主要介绍了python中sleep函数用法,实例分析了sleep函数的功能及使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • Django xadmin安装及使用详解

    Django xadmin安装及使用详解

    这篇文章主要介绍了Django xadmin安装及使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Python实现随机从图像中获取多个patch

    Python实现随机从图像中获取多个patch

    经常有一些图像任务需要从一张大图中截取固定大小的patch来进行训练。本文就来和大家聊聊如何用Python实现随机从图像中获取多个patch,感兴趣的可以了解一下
    2022-08-08
  • django query模块

    django query模块

    这篇文章主要介绍了django query模块,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 解决python ogr shp字段写入中文乱码的问题

    解决python ogr shp字段写入中文乱码的问题

    今天小编就为大家分享一篇解决python ogr shp字段写入中文乱码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python获取统计自己的qq群成员信息的方法

    Python获取统计自己的qq群成员信息的方法

    这篇文章主要介绍了Python获取统计自己的qq群成员信息的方法,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • NumPy 基本切片和索引的具体使用方法

    NumPy 基本切片和索引的具体使用方法

    这篇文章主要介绍了NumPy 基本切片和索引的具体使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论