簡體   English   中英

如何使用openpyxl python將數據附加到指定行的excel文件?

[英]how to append data using openpyxl python to excel file from a specified row?

我有不同的Python列表變量(data1,data2,data3等),其中包含我想要放入已經存在的Excel工作表中的數據。 現在,我的循環就像這樣。

for row, entry in enumerate(data1,start=1):
  st.cell(row=row, column=1, value=entry)
  work.save('sample.xlsx')
for row, entry in enumerate(data2,start=1):
  st.cell(row=row, column=2, value=entry)
  work.save('sample.xlsx')
for row, entry in enumerate(data3,start=1):
  st.cell(row=row, column=3, value=entry)
  work.save('sample.xlsx')
for row, entry in enumerate(data4,start=1):
  st.cell(row=row, column=4, value=entry)
  work.save('sample.xlsx')
for row, entry in enumerate(data5,start=1):
  st.cell(row=row, column=5, value=entry)
  work.save('sample.xlsx')
for row, entry in enumerate(data6,start=1):
  st.cell(row=row, column=6, value=entry)
  work.save('sample.xlsx')
for row, entry in enumerate(data7,start=1):
  st.cell(row=row, column=7, value=entry)
  work.save('sample.xlsx')      

一旦我的Python腳本運行,它將存儲第一行的數據。 如果我再次運行腳本,我希望新數據低於可用數據

怎么辦?

嘗試使用

sheet.max_row 

它將返回最后一行值,您可以從這里開始編寫新值。

max = ws.max_row
for row, entry in enumerate(data1,start=1):
   st.cell(row=row+max, column=1, value=entry)

希望它有所幫助。快樂的編碼:)

openpyxl有許多不同的方法可以准確,但在之前的答案中wsappend足以滿足您的要求。 考慮您已將數據寫入新的sample.xlsx

from openpyxl.workbook import Workbook

headers       = ['Company','Address','Tel','Web']
workbook_name = 'sample.xlsx'
wb = Workbook()
page = wb.active
page.title = 'companies'
page.append(headers) # write the headers to the first line

# Data to write:
companies = [['name1','address1','tel1','web1'], ['name2','address2','tel2','web2']]

for info in companies:
    page.append(info)
wb.save(filename = workbook_name)

現在,要附加新行,您必須首先使用load_workbook打開現有書籍:

from openpyxl import load_workbook

workbook_name = 'sample.xlsx'
wb = load_workbook(workbook_name)
page = wb.active

# New data to write:
new_companies = [['name3','address3','tel3','web3'], ['name4','address4','tel4','web4']]

for info in new_companies:
    page.append(info)

wb.save(filename=workbook_name)

ws.append()將始終在任何現有數據下添加行。

您可以使用append()方法將值附加到現有的excel文件。 例:

workbook_obj = openpyxl.load_workbook(excelFilePath)
sheet_obj = workbook_obj.active
col1 = 'NewValueCol1'
col2 = 'NewValueCol2'
sheet_obj.append([col1, col2])
workbook_obj.save(excelFilePath)

這里col1和col2值將與excel表中的現有數據一起添加。

暫無
暫無

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

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