Как циклом добавить запись в документ microsoft word?
Имеется шаблон документа word шаблон.docs:
{{id}} some text {{id}} other words {{id}}
код программы:
list_data=[
{'id':'1', 'name':'вася', 'password':'123'},
{'id':'2', 'name':'john', 'password':'321'},
{'id':'3', 'name':'mike', 'password':'555'}
]
for i in list_data:
doc = DocxTemplate("шаблон.docx")
context = {'id': i['id']}
doc.render(context)
doc.save(f"{output.docx")
в файле output.docx получаю:
1 some text 1 other words 1
как получить результат в файл output.docx:
1 some text 2 other words 3
Ответы (1 шт):
Автор решения: vanesicks
→ Ссылка
Вам нужно использовать разные переменные в шаблоне.
{{id1}} some text {{id2}} other words {{id3}}
И в цикле уже построить массив контекста с другими ключами, а рендер вызвать после цикла.
context = {};
doc = DocxTemplate("шаблон.docx")
for i in list_data:
context['id'+i['id']]=i['id']}
doc.render(context)