@CheXnik

Docxtpl почему сохраняет не те данные?

Суть кода брать данные с excel, и записывать в word. Оно делает всё правильно но данные всё равно сохраняются не те что надо
Вот полный код:
import os
from docxtpl import DocxTemplate
from openpyxl import load_workbook

file = load_workbook(os.path.join(os.getcwd(), 'test.xlsx'))
data = file['Лист2']

doc = DocxTemplate("test.docx")

number = 2
count = 0

while count < 4:
    value = data[f'C{number}'].value
    if value:
        count = 0
        context = { 'kod_1' : str(data[f'A{number}'].value),
                    'kod_2' : str(data[f'B{number}'].value),
                    'last_name_ua': data[f'D{number}'].value,
                    'first_name_ua': data[f'E{number}'].value,
                    'last_name_en': data[f'F{number}'].value,
                    'first_name_en': data[f'G{number}'].value,
                    'date_of_birth': (str(data[f'H{number}'].value).replace('-', '/'))[:10],
                    'kod_3': str(data[f'C{number}'].value)}
        doc.render(context)
        doc.save(f"diplom/{data[f'D{number}'].value} {data[f'E{number}'].value}.docx")

        print('Сделанно дипломов >>', (number-1), ', название: ',
              f"{data[f'D{number}'].value} {data[f'E{number}'].value}.docx")

        number += 1
        count += 1

print('Работа выполнена')


именно поля kod_1, kod_2, kod_3 заполняются не теми значениями, хотя при дебагенге значения правильные лежат в context
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
@CheXnik Автор вопроса
Я решил. Обратите внимание на эту строку:
doc = DocxTemplate("test.docx")
она должна быть внутри цикла, и тогда всё работает как надо
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы