7

我有一个 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 列吗?

4

3 回答 3

10

要将值分配给单元格,请使用=

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

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

于 2013-02-21T14:38:08.600 回答
2
from openpyxl import load_workbook,Workbook

wb=load_workbook('Book1.xlsx')
ws1=wb.get_sheet_by_name('Sheet1')

shs=wb.get_sheet_names()
print(type(shs))
# shs is list

for r in range(0,len(shs)):
    ws1.cell(row=r+1,column=1).value=shs[r]

wb.save('Book1.xlsx')
于 2017-04-12T08:52:39.537 回答
0

Openpyxl 不允许您在 excel 单元格中编写列表,但是如果您将列表转换为字符串,您可以将其粘贴到 excel 中。

例如,这会导致错误

my_list = ['1','2','3'] ws.cell(row=r, column=1).value = my_list

但是,这会将列表的字符串粘贴到excel中

my_list = ['1','2','3'] new_list = str(my_list) ws.cell(row=r, column=1).value = new_list

于 2017-01-18T09:17:16.570 回答