簡體   English   中英

如何使用openpyxl將列表寫入xlsx

[英]How to write a list to xlsx using 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)

我得到一個TypeError:'NoneType'對象不能用於代碼snipet中的最后一行。

你能幫我解決如何將我的數據寫入Excel文件的問題嗎?

干杯托馬斯

要為單元格指定值,請使用=

cell.value = statN

您還需要修復循環。 請注意,現在,對於lstStat 每個元素,您正在編寫整個范圍 除了不是你想要的,它也不太靈活:如果lstStat有更多或更少的元素會發生什么?

你想要做的只是循環遍歷lstStatlstStat增加行號。 就像是

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版本2.0.0開始 ,A1被引用為cell(row=1, column=1) ;在早期版本中,A1是cell(row=0, column=0) 。)

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')

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM