Разбить столбцы с помощью docxTemplate Python - PullRequest
4 голосов
/ 28 мая 2019

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

Это мой код Python:

from docxtpl import Docxtemplate

doc = DocxTemplate("Template.docx")
context = {}
table_info = [{start: "A", end: "C"}, {start: "B", end: "C"}, {start:"F", end:"L"}, {start:"B", end:"R"}]
context["table_info"] = table_info

doc.render(context)
doc.save("Finish.docx")

Я хочу, чтобы конечный результат был в такой таблице:

| start | end |
|  A    | C   |
|  B    | C   |
|  F    | L   |
|  B    | R   |

Кто-нибудь хотел бы показать мне, как я могу это сделать? Я видел пример dynamic_table_tpl , но мне не удалось обернуться вокруг того, что я пытаюсь сделать. Заранее спасибо!

1 Ответ

0 голосов
/ 30 мая 2019

Адаптация кода теста от https://github.com/elapouya/python-docx-template/blob/master/tests/dynamic_table.py к вашим потребностям:

from docxtpl import DocxTemplate

doc = DocxTemplate('Template.docx')

context = {
    'col_labels' : ['start', 'end'],
    'tbl_contents': [
        {'label': 'black', 'cols': ['A', 'C']},
        {'label': 'black', 'cols': ['B', 'C']},
        {'label': 'black', 'cols': ['F', 'L']},
        {'label': 'black', 'cols': ['B', 'R']},
        ]
}

doc.render(context)
doc.save('Finish.docx')

Ваша сборка для context использует неправильные имена ключей.

...