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

Python Openpyxl如何读取列值按规则拼接生成链接数组

最优实现方案

你现有代码缺少工作表对象的定义,需要先补充对应逻辑,优先用Python列表推导式实现新数组生成,代码简洁且执行效率高于普通循环append的写法:

方案一:保留fileNameArray(后续需要用到该数组时选择)

from openpyxl import load_workbook

# 加载工作簿、获取工作表
workbook = load_workbook(filename="./test.xlsx")
sheet = workbook.active  # 如果要指定工作表可以替换为 workbook['你的工作表名称']

# 生成fileNameArray
fileNameArray = []
for column in sheet.iter_cols(min_row=2, min_col=1, max_row=300, max_col=1):
    for cell in column:
        # 过滤空单元格避免生成无效链接,不需要该逻辑可以去掉判断直接append
        if cell.value:
            fileNameArray.append(str(cell.value))

# 生成linkArray
linkArray = [
    f"https://www.differentLinkIfNameStartsWithXYZ/{filename}" 
    if filename.startswith("XYZ") 
    else f"https://www.linkName.com/{filename}"
    for filename in fileNameArray
]

方案二:直接生成linkArray(不需要fileNameArray时选择,节省内存)

不用额外存储fileNameArray,读取Excel单元格时直接生成链接,节省一次数组遍历的开销:

from openpyxl import load_workbook

workbook = load_workbook(filename="./test.xlsx")
sheet = workbook.active

linkArray = []
for column in sheet.iter_cols(min_row=2, min_col=1, max_row=300, max_col=1):
    for cell in column:
        if not cell.value:
            continue
        filename = str(cell.value)
        if filename.startswith("XYZ"):
            link = f"https://www.differentLinkIfNameStartsWithXYZ/{filename}"
        else:
            link = f"https://www.linkName.com/{filename}"
        linkArray.append(link)

上述代码使用的f-string语法为Python3.6及以上版本支持,如果你使用更低版本的Python,可替换为format写法:"https://www.linkName.com/{}".format(filename)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:57:01