@s0perdel

Как правильно оформлять таблицы с переменным количеством строк в python docxtpl?

Возникли трудности с модулем docxtpl для Python который использует jinja2 как основу.
У меня в python есть например двумерный массив, представляющий таблиц, но строк в нем может быть по разному.
Как оформить шаблон .docx чтобы в таблице в документе было всегда нужное количество строк?
Мне нужно чтобы было 2 столбца, например наименование и цена.

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

Пример таблицы в Python:
data = [
    ['наименование1', 'стоимость1'],
    ['наименование2', 'стоимость2']
]
  • Вопрос задан
  • 165 просмотров
Пригласить эксперта
Ответы на вопрос 1
@o5a
В самом шаблоне docx можно использовать циклы. Внутри нарисованной таблицы добавить соответствующие тэги, начинается с {%tr/tc for ... %} и закрывается endfor (отдельно закрывается тэг строк и столбцов), тогда переданные данные будут множиться по строкам и столбцам:
+---------------------------+---------+----------------+
| {%tr for row in data %}   |         |                |
+---------------------------+---------+----------------+
| {%tc for col in row %}    | {{col}} | {%tc endfor %} |
+---------------------------+---------+----------------+
| {%tr endfor %}            |         |                |
+---------------------------+---------+----------------+


В псевдографике это только пример, в самом docx ее не нужно рисовать, нужно делать обычную таблицу.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы