如何使用openpyxl将列表数据写入Excel指定非连续列
解决方案
append()方法默认从当前行的A列开始按顺序写入传入的序列元素,无法实现跳列填充的需求,你可以通过直接给指定单元格赋值的方式实现需求。
修正后完整代码
import openpyxl path = r"C:\Folder\Filename.xlsx" # 修正原代码遗漏的openpyxl模块前缀 wb = openpyxl.load_workbook(path) # 替换为你实际使用的工作表名称 sheet_name = "Sheet1" sheet = wb[sheet_name] # 避免用list作为变量名(会覆盖Python内置list类型),字符串内容需要加引号 data_list = ["Apple", "Pear", "Fruit"] # 定义写入的目标行号,openpyxl行号/列号均从1开始计数,此处示例为写入第2行 target_row = 2 # 建立元素对应目标列的映射:A列对应1、C列对应3、F列对应6 col_mapping = [1, 3, 6] for val, col in zip(data_list, col_mapping): sheet.cell(row=target_row, column=col, value=val) # 必须执行保存操作,修改才会写入本地文件 wb.save(path)
核心修改说明
- 放弃
append()方法,改用sheet.cell()直接对指定行、列的单元格赋值,支持任意列的位置写入 - 通过映射列表匹配元素和目标列的对应关系,循环完成批量赋值
- 修复了原代码中
load_workbook调用错误、变量名不规范、字符串未加引号的问题 - 新增文件保存步骤,确保修改生效
内容的提问来源于stack exchange,提问作者Bobby
相关产品推荐
相关产品推荐

