Генерация таблицы из нескольких столбцов с использованием docxtpl - PullRequest
0 голосов
/ 20 января 2020

У меня есть ряд данных (в двумерном списке «CombinedTable»), которые мне нужно использовать для заполнения таблицы в шаблоне MS Word. В таблице 7 столбцов, поэтому я попытался выполнить следующее с помощью модуля docxtpl:

context = {
    'tpl_modules1': CombinedTable[0]
    'tpl_modules2': CombinedTable[2]
    'tpl_modules3': CombinedTable[4]
    'tpl_modules4': CombinedTable[6]
    'tpl_modules5': CombinedTable[8]
    'tpl_modules6': CombinedTable[10]
    'tpl_modules7': CombinedTable[12]
}
tpl.render(context)

tpl.save(FilePath + FileName)

Не самое элегантное решение, которое я знаю, но я просто пытаюсь добиться этого, к сожалению , используя этот код со следующим шаблоном в результате данные tpl_modules7 записываются во все столбцы, а не только в седьмой.

Image of word template

У кого-нибудь есть советы, как решить эту проблему? Я попытался создать для l oop через столбцы и строки, но безуспешно записал что-либо в do c (был сохранен как пустой и пустой do c).

Переменная CombinedTable представляет собой список из 12 списков (по одному для каждого столбца в шаблоне, хотя только 7 содержат данные). Каждый из этих 12 списков содержит другой список с данными ячейки, длина которого равна числу строк, которые должны быть записаны в таблицу в этом столбце. Это означает, что число строк, в которые производится запись, варьируется для каждого столбца.

РЕДАКТИРОВАТЬ: Если присмотреться к документам , в нем говорится, что я не могу использовать %tr несколько раз в тот же ряд Я предполагаю, что тогда мне придется использовать все с oop по %tc и %tr (которые я пробовал и не смог получить работу). Любой совет, как это реализовать? Особенно на стороне слова документа. Спасибо!

1 Ответ

0 голосов
/ 21 января 2020

Мне удалось решить эту проблему удовлетворительно для моих требований, однако мое решение может не подойти всем. Я просто настроил 7 различных таблиц в документе с 7 столбцами и отрегулировал поля / границы в соответствии с размерами, которые требовались для таблиц. Каждая из 7 таблиц имела идентичный синтаксис docxtpl как изображение в моем вопросе с небольшими буферными столбцами между ними, заменяемыми столбцами в документе word.

...