Revert "Fix tables that have less cells after the tc forloop"
This commit is contained in:
parent
b48b6b1b82
commit
a81c7cf31a
@ -340,44 +340,6 @@ class DocxTemplate(object):
|
|||||||
for i in range(to_add):
|
for i in range(to_add):
|
||||||
etree.SubElement(tblGrid, ns+'gridCol',
|
etree.SubElement(tblGrid, ns+'gridCol',
|
||||||
{ns+'w': str(int(new_average))})
|
{ns+'w': str(int(new_average))})
|
||||||
|
|
||||||
# Refetch columns after columns addition.
|
|
||||||
columns = tblGrid.findall(ns + 'gridCol')
|
|
||||||
columns_len = len(columns)
|
|
||||||
|
|
||||||
cells_len_max = 0
|
|
||||||
|
|
||||||
# Calculate max of table cells to compare with `gridCol`.
|
|
||||||
for r in t.iter(ns + 'tr'):
|
|
||||||
cells = r.findall(ns + 'tc')
|
|
||||||
cells_len = len(cells)
|
|
||||||
|
|
||||||
cells_len_max = max(cells_len_max, cells_len)
|
|
||||||
|
|
||||||
to_remove = columns_len - cells_len_max
|
|
||||||
|
|
||||||
# If after the loop, there're less columns, than
|
|
||||||
# originally was, remove extra `gridCol` declarations.
|
|
||||||
if to_remove > 0:
|
|
||||||
# Have to keep track of the removed width to scale the
|
|
||||||
# table back to its original width.
|
|
||||||
removed_width = 0.0
|
|
||||||
|
|
||||||
for c in columns[-to_remove:]:
|
|
||||||
removed_width += float(c.get(ns + 'w'))
|
|
||||||
|
|
||||||
tblGrid.remove(c)
|
|
||||||
|
|
||||||
columns_left = tblGrid.findall(ns + 'gridCol')
|
|
||||||
|
|
||||||
# Distribute `removed_width` across all columns that has
|
|
||||||
# left after extras removal.
|
|
||||||
extra_space = removed_width / len(columns_left)
|
|
||||||
extra_space = int(extra_space)
|
|
||||||
|
|
||||||
for c in columns_left:
|
|
||||||
c.set(ns+'w', str(int(float(c.get(ns+'w')) + extra_space)))
|
|
||||||
|
|
||||||
return tree
|
return tree
|
||||||
|
|
||||||
def new_subdoc(self,docpath=None):
|
def new_subdoc(self,docpath=None):
|
||||||
|
|||||||
@ -1,5 +0,0 @@
|
|||||||
from docxtpl import DocxTemplate
|
|
||||||
|
|
||||||
tpl = DocxTemplate('templates/less_cells_after_loop_tpl.docx')
|
|
||||||
tpl.render({})
|
|
||||||
tpl.save('output/less_cells_after_loop.docx')
|
|
||||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user