Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 Span columns with docxTemplate python
I'm having trouble trying to fill in a table row by row using DocxTemplate. I'm only confused on how the template should look like.

This is my python code:

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

I want the final result to be in a table like this:

| start | end |
|  A    | C   |
|  B    | C   |
|  F    | L   |
|  B    | R   |
Would anyone be willing to show me how I can accomplish this? I saw this example: but I wasn't able to wrap my head around what I'm trying to do. Thanks in advance!
I think you want to use python-docx
(not python-docx-template), see here:

There is a sample which create tables.
from docx import Document
from docx.shared import Inches

document = Document()

records = (
    ('A', 'C'),
    ('B', 'C'),

table = document.add_table(rows=1, cols=2)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'start'
hdr_cells[1].text = 'end'

for c0, c1 in records:
    row_cells = table.add_row().cells
    row_cells[0].text = c0
    row_cells[1].text = c1'demo.docx')
The problem with this is it manually adds its own table into a new docx file. Is there a way to do this except have it insert into a table that already exists in a docx file.
Ok, then you need python-docx-template.

As I understand python-docx-template,
you have to made first a template yourself
with a table already.
And then you can change or add data to the table with python.

Top Page

Forum Jump:

Users browsing this thread: 1 Guest(s)