我想用python编辑一个odt文档.只是一个简单的关键字交换.这可能吗?



1)我想以编程方式交换odf文档中的某些关键字。例如,示例租约具有TENANT_NAME,我的程序将插入租户的实际名称。

  1. 我已经尝试了一个代码片段,从这个网站的工作在简单的文档,但当我试图使用它在我的租约它抛出一个索引超出范围的错误。
from odf import opendocument, text, teletype
this_dictionary = {
'TENANT_NAME': 'Cameron Stark',
'DATE_START': '5/1/2022',
'DATE_END': '7/31/2022',
'RENT_AMOUNT': '500',
'DEPOSIT_AMOUNT': '400',
'EMAIL_ADDRESS': 'example@ymail.com',
'PHONE_NUMBER': '1234567890'
}
PATH = "C:/Users/Cameron Stark/Documents/sample_lease_alpine.odt"
DESTINATION = "C:/Users/Cameron Stark/Documents/cameron_lease.odt"

def change_odt_file(my_dictionary, path, destination):
text_doc = opendocument.load(path)
for x, y in my_dictionary.items():
texts = text_doc.getElementsByType(text.P)
s = len(texts)
for i in range(s):
old_text = teletype.extractText(texts[i])
new_text = old_text.replace(x, y)
new_S = text.P()
new_S.setAttribute("stylename", texts[i].getAttribute("stylename"))
new_S.addText(new_text)
texts[i].parentNode.insertBefore(new_S, texts[i])
texts[i].parentNode.removeChild(texts[i])
text_doc.save(destination)
text_doc = opendocument.load(destination)

change_odt_file(this_dictionary, PATH, DESTINATION)

简单的解决方案,只需在HTML中重新编写我的租约。超级容易使用,比任何文字处理软件更强大的功能。

最新更新