使用Python、Openpyxl从特定单元格开始向现有excel文件追加列表

vyswwuz2  于 2023-02-25  发布在  Python
关注(0)|答案(1)|浏览(197)

我在dictionary -> employee_data变量中得到了一个列表,它不是一个列表的列表,它在for loop中一个接一个地通过,看看下面的代码...

print(my_list)

    ['A', 'B', 'C', 'D', 'E']
    ['B', 'C', 'B', 'B', 'B']
    ['C', 'C', 'C', 'C', 'C']
    ['A', 'B', 'C', 'D', 'E']
    ['D', 'D', 'D', 'D', 'D']

1.我只想把list's项从ws['C3':'H' + str(ws.max_row)]之间的单元格添加到excel中,就像这样,在循环中可能吗?

我的准则是

for key,day_value in employee_data.items():
        attendance_array = []
        for val_key, get_value in day_value.items():
            attendance_array.append(get_value)
        my_list = attendance_array[n:]
        print(my_list)

        for rw in ws['C3':'H' + str(ws.max_row)]:
            for cell, val in zip(rw, my_list):
                cell.value = val
4uqofj5v

4uqofj5v1#

您的代码从employee_data字典读取1个列表,因此假定['A','B','C','D','E']然后将此列表应用于所有5行,因为您创建了从C3到H7的范围,然后您将获得下一个列表['B','C','B',' B','B']并对列表的其余部分执行相同的操作。不确定为什么您的范围需要扩展到列H,因为最后一列是G,但您需要将第一个循环的范围设置为C3:G3,即仅第3行,然后在下一个循环中将范围设置为C4:G4,然后在下一个循环中设置为C5:G5,等等
示例

...
row = 3
for key, day_value in employee_data.items():
    attendance_array = []
    for val_key, get_value in day_value.items():
        attendance_array.append(get_value)
    my_list = attendance_array[n:]
    print(my_list)

    for rw in ws[f'C{row}:G{row}']:
        for cell, val in zip(rw, my_list):
            cell.value = val
    row += 1

相关问题