我有不同的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脚本运行,它将存储第一行的数据。 如果我再次运行脚本,我希望新数据低于可用数据
怎么做?
答案 0 :(得分:5)
尝试使用
sheet.max_row
它将返回最后一行值,您可以从这里开始写新值。
max = ws.max_row
for row, entry in enumerate(data1,start=1):
st.cell(row=row+max, column=1, value=entry)
希望它有所帮助。快乐的编码:)
答案 1 :(得分:4)
openpyxl 有许多不同的方法,但以前的答案中的 ws.append 足以满足您的要求。考虑您已将数据写入新的 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)
答案 2 :(得分:2)
ws.append()
将始终在任何现有数据下添加行。
答案 3 :(得分:1)
您可以使用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工作表中的现有数据相加。