how to append data using openpyxl python to excel file from a specified row?
ws.append()
will always add rows below any existing data.
Try using:
sheet.max_row
It will return the last row value, you can start writing the new values from there:
max = ws.max_row
for row, entry in enumerate(data1, start=1):
st.cell(row=row+max, column=1, value=entry)
openpyxl has many different methods to be precise but ws.append in previous answers is strong enough to answer your demands. Consider you have written your data to a new 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)
Now, to append new lines you must first open an existing book with 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)