如何将列表写入Excel列?

2022-04-07 00:00:00 python openpyxl

问题描述

我有一个Python中的一些值的列表,并希望使用Openpyxl将它们写入到Excel电子表格列中。

到目前为止我试过了,其中lstStat是需要写入Excel列的整数列表:

for statN in lstStat:
    for line in ws.range('A3:A14'):
        for cell in line:
            cell.value(statN)

我得到代码段中最后一行的TypeError: 'NoneType' object is not callable

您能帮我解决如何将数据写入Excel列的问题吗?


解决方案

若要为单元格赋值,请使用=

cell.value = statN

您还需要修复您的循环。请注意,现在,对于lstStat中的每个元素,您正在编写整个范围。除了不是您想要的,它也不太灵活:如果lstStat有更多或更少的元素会发生什么?

您想要做的只是循环lstStat,并在执行过程中递增行号。类似于

r = 3
for statN in lstStat:
    ws.cell(row=r, column=1).value = statN
    r += 1

您还可以使用Python的enumerate函数:

for i, statN in enumerate(lstStat):
    ws.cell(row=i+3, column=1).value = statN

(请注意,从OpenPyXL version 2.0.0开始,A1引用为cell(row=1, column=1);在早期版本中,A1引用为cell(row=0, column=0)。)

相关文章