如何使用 openpyxl python 将数据附加到指定行中的 excel 文件?

新手上路,请多包涵

我有不同的 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 脚本运行,它将存储第一行的数据。 如果我再次运行脚本,我希望新数据低于可用数据

怎么做?

原文由 user6319690 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 597
2 个回答

尝试使用:

 sheet.max_row

它将返回最后一行值,您可以从那里开始写入新值:

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

原文由 Strik3r 发布,翻译遵循 CC BY-SA 4.0 许可协议

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)

原文由 Fuat Can 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题