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

Python使用openpyxl将列表值赋值到Excel指定工作表列区域

问题背景

需要将Python列表值批量写入指定Excel文件第6个工作表的AF6:AF22单元格区域,现有代码仅能给该区域统一写入固定值5,希望找到简洁的列表批量赋值方案。
现有代码存在两个基础错误:

  • 未正确定位第6个工作表:wb.worksheets返回所有工作表的列表,直接赋值给ws后无法定位到目标表
  • 循环逻辑仅支持固定值写入,未关联列表索引做对应赋值
实现方法

openpyxl原生不支持直接对单元格切片区域赋值一维列表,但可以通过极简遍历实现同等效果,步骤如下:

  1. 修正工作表定位逻辑:Python序列索引从0开始,第6个工作表对应索引为5,即ws = wb.worksheets[5]
  2. 提前对齐列表长度:AF6:AF22区域共17个单元格(22-6+1=17),待写入列表长度需要和单元格数量一致,否则会触发索引越界
  3. 遍历单元格时按索引匹配列表值写入即可,代码量和固定值写入几乎无差异

修正后的完整代码:

from openpyxl import load_workbook

# 替换为实际待写入的列表,长度需匹配目标区域单元格数量
l = list(range(17))
file_path = 'excel_file.xlsx'
wb = load_workbook(file_path)

# 定位第6个工作表
ws = wb.worksheets[5]

# 批量按顺序写入列表值
for idx, cell in enumerate(ws['AF6:AF22']):
    cell[0].value = l[idx]

# 保存修改
wb.save(file_path)

提示:原代码中冗余导入了pandas和Workbook,实际运行时可以删除,避免不必要的资源加载。如果追求更简洁的调用形式,可以将批量赋值逻辑封装为通用函数,底层逻辑和上述遍历写法一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 05:49:18