gpt4 book ai didi

python - openpyxl 覆盖所有数据而不是更新 excel 表

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:49 27 4
gpt4 key购买 nike

我正在尝试从文本文件中读取字符串并将其写入 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 工作表:

enter image description here

脚本后的 Excel 工作表:

enter image description here

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

最佳答案

覆盖是由于使用 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")

关于python - openpyxl 覆盖所有数据而不是更新 excel 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39590102/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com