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

如何用Python在Excel名称管理器中添加多个非连续单元格?

在Python中给Excel名称管理器添加多区域非连续单元格定义

问题说明

需要在Excel名称管理器的单个名称下关联多个非连续的单元格/单元格区域,尝试过openpyxl和XlsxWriter库,但仅能定义单个单元格或连续区域,希望实现类似以下效果的复杂名称定义:

workbook.define_name('complex_range','=Sheet1!$B$3:$E$8;Sheet1!$B$12:$C$16;Sheet1!$B$19;Sheet1!$H$12:$I$16')

解决方案

使用XlsxWriter实现

XlsxWriter本身支持通过分号分隔多个非连续区域来定义名称,直接按预想的写法即可,示例代码如下:

import xlsxwriter

# 创建工作簿和工作表
workbook = xlsxwriter.Workbook('multi_range.xlsx')
worksheet = workbook.add_worksheet('Sheet1')

# 定义包含多个非连续区域的名称
workbook.define_name('complex_range', '=Sheet1!$B$3:$E$8;Sheet1!$B$12:$C$16;Sheet1!$B$19;Sheet1!$H$12:$I$16')

# 关闭工作簿
workbook.close()

使用openpyxl实现

openpyxl的DefinedName类同样支持传入分号分隔的多区域字符串作为attr_text参数,示例代码如下:

from openpyxl import Workbook
from openpyxl.workbook.defined_name import DefinedName

# 创建工作簿和工作表
wb = Workbook()
ws = wb.active
ws.title = 'Sheet1'

# 定义包含多个非连续区域的名称
complex_range = DefinedName('complex_range', attr_text='Sheet1!$B$3:$E$8;Sheet1!$B$12:$C$16;Sheet1!$B$19;Sheet1!$H$12:$I$16')
wb.defined_names.append(complex_range)

# 保存工作簿
wb.save('multi_range_openpyxl.xlsx')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:32:12