簡體   English   中英

openpyxl在Excel中寫多行

[英]openpyxl write multiple rows in Excel

我試圖將多個行寫入Excel。 “容器”的索引/長度為10。盡管我循環瀏覽它,但運行腳本時只得到一行。

誰能幫我這個?

# define first empty row
start_row = sheet.max_row + 1

#write to excel
for container in containers:
 #Company name
 company_container = container.div.h2
 company = company_container.text.strip()

 #City
 city = container.div.a["title"]

 #URL
 url = container.div.div.a["href"]

 #Title
 title_container = container.findAll("div", {"class":"info"})
 title = title_container[0].img["alt"]

 #Description
 description = title_container[0].p.text

 #Programming language
 hardskill = "Java"

 #Vervolgactie (Teamleader)
 vervolgactie = "Nieuw"

 companyinfo = [company, city, url, title, description, hardskill, vervolgactie]

 for i in range(0,len(companyinfo)):
   e=sheet.cell(row=start_row,column=1+i)
   e.value=companyinfo[i]

wb.save("vacatures.xlsx")

您的問題是您在同一行上用e=sheet.cell(row=start_row,column=1+i)寫出所有內容。

由於所有內容都包含在for container in containers循環for container in containers ,因此我只會在子循環之后增加start_row

 for i in range(0,len(companyinfo)):
   e=sheet.cell(row=start_row,column=1+i)
   e.value=companyinfo[i]

 start_row +=1 #not part of the above loop but part of the overarching loop

我考慮的另一種方法是將start_row重命名為僅一行(這在語義上更清晰),並在循環中定義row

#start_row = sheet.max_row + 1

#write to excel
for container in containers:
 #row for this data to go on. 
 row = sheet.max_row + 1

 #Company name
 company_container = container.div.h2
 company = company_container.text.strip()

暫無
暫無

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

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