如何使用openpyxl将列表写入xlsx

Tho*_*ker 4 python openpyxl

我在Python中有一些值的列表,并希望使用openpyxl将它们写入Excel-Spreadsheet.

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

for statN in lstStat:
    for line in ws.range('A3:A14'):
        for cell in line:
            cell.value(statN)
Run Code Online (Sandbox Code Playgroud)

我得到一个TypeError:'NoneType'对象不能用于代码snipet中的最后一行.

你能帮我解决如何将我的数据写入Excel文件的问题吗?

干杯托马斯

Joh*_*n Y 8

要为单元格指定值,请使用=:

cell.value = statN
Run Code Online (Sandbox Code Playgroud)

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

你想要做的只是循环lstStat并随时增加行号.就像是

r = 3
for statN in lstStat:
    ws.cell(row=r, column=1).value = statN
    r += 1
Run Code Online (Sandbox Code Playgroud)

你也可以使用Python的enumerate功能:

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

(请注意,A1作为引用cell(row=1, column=1)作为OpenPyXL版本2.0.0,在早期版本中,A1是cell(row=0, column=0).)