我有一系列数据(在二维列表‘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数据写入所有列,而不仅仅是第7列。

有人对如何解决这个问题有建议吗?我试图在列和行之间创建一个for循环,但是没有成功地将任何东西写入文档(保存为空白&空文档)。
CombinedTable变量是一个由12个列表组成的列表(模板中每个列都有一个列表,尽管只有7个包含数据)。这12个列表中的每一个都包含另一个包含单元格数据的列表,其长度等于要写入该列中的表的行数。这意味着写入的行数因每一列而异。
编辑:更仔细地查看文档,它声明我不能在同一行中多次使用%tr。然后,我想我将不得不通过%tc和%tr使用一个循环(我尝试过了&无法工作)。对于如何实现这一点,有什么建议吗?尤其是在单词文档的那一边。谢谢!
发布于 2020-01-20 22:38:04
我能够令人满意地解决我的要求,但我的解决方案可能不适合所有。我只需在一个文档中设置7个不同的表,其中包含7列和调整后的边距/边框,以满足表所需的尺寸。在我的问题中,7个表的docxtpl语法与图像相同,它们之间的小缓冲区列被word文档中的列替换。
https://stackoverflow.com/questions/59815824
复制相似问题