openpyxl覆盖所有的数据,而不是更新Excel表

我想从一个文本文件中读取一个string,并将其写入Excel表格中,而不会覆盖。 我发现某处更新excel表,使用openpyxl。 但是我的脚本只是覆盖整个表格。 我想要其他数据是一样的。

python脚本:

from openpyxl import Workbook file_name="D:\\a.txt" content={} with open(file_name) as f: for line in f: (key,value)=line.split(":") content[key]=value wb=Workbook() ws=wb.active r = 2 for item in content: ws.cell(row=r, column=3).value = item ws.cell(row=r, column=4).value = content[item] r += 1 wb.save("D:\\Reports.xlsx") 

脚本之前的Excel工作表:

在这里输入图像说明

脚本之后的Excel工作表:

在这里输入图像说明

如何编写数据以覆盖其他内容? 帮帮我。

覆盖是由于用wb.save()和硬编码的起始行号r = 2来保存文件。
1)如果你不关心每次执行脚本时覆盖行,你可以使用这样的东西:

 from openpyxl import Workbook from openpyxl import load_workbook path = 'P:\Desktop\\' file_name = "input.txt" content= {} with open(path + file_name) as f: for line in f: (key,value)=line.split(":") content[key]=value wb = load_workbook(path + 'Reports.xlsx') ws = wb.active r = 2 for item in content: ws.cell(row=r, column=3).value = item ws.cell(row=r, column=4).value = content[item] r += 1 wb.save(path + "Reports.xlsx") 

2)如果你关心覆盖行和列号(3&4),你可以尝试这样的事情:

 from openpyxl import Workbook from openpyxl import load_workbook path = 'P:\Desktop\\' file_name = "input.txt" content= [] with open(path + file_name) as f: for line in f: key, value = line.split(":") content.append(['','', key, value]) # adding empty cells in col 1 + 2 wb = load_workbook(path + 'Reports.xlsx') ws = wb.active for row in content: ws.append(row) wb.save(path + "Reports.xlsx")