如何将my_list元素依次写入Excel的E2至AH2单行单元格?
问题修正:将列表元素依次写入Excel单行单元格
原代码的核心问题是三层嵌套循环逻辑错误——每个单元格都会遍历整个my_list,最终所有单元格都被覆盖为列表的最后一个元素31。以下是两种修正方案:
方案一:用zip配对单元格与列表元素
from openpyxl import load_workbook wb = load_workbook("Myworkbook.xlsx") ws = wb.active my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] # 取出E2:AH2行的所有单元格,与my_list元素一一对应赋值 for cell, value in zip(ws['E2:AH2'][0], my_list): cell.value = value wb.save('Myworkbook.xlsx')
ws['E2:AH2'][0]获取指定行的单元格序列,zip()将单元格和列表元素按顺序配对,确保每个单元格只接收对应位置的列表值。
方案二:通过列索引直接赋值
from openpyxl import load_workbook wb = load_workbook("Myworkbook.xlsx") ws = wb.active my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] # E列对应列号5,AH列对应列号34,循环列号赋值 for col in range(5, 35): ws.cell(row=2, column=col).value = my_list[col - 5] wb.save('Myworkbook.xlsx')
- 利用Excel列号的数值对应关系(E=5,AH=34),通过循环列号直接定位单元格,列表索引通过
列号-5计算,实现顺序赋值。
内容的提问来源于stack exchange,提问作者Sagar Patil
相关产品推荐
相关产品推荐

