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

(A1はOpenPyXLバージョン2.0.0cell(row=1, column=1)の時点で参照されていることに注意してください。以前のバージョンでは、 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 に答える