使用docxtpl生成多列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用docxtpl生成多列表相关的知识,希望对你有一定的参考价值。

我需要使用一系列数据(在二维列表'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列。]

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9rYUFBMC5wbmcifQ==” alt =“单词模板的图像”>

有人对如何解决这个问题有意见吗?我试图在列和行之间创建一个for循环,但未成功将任何内容写入doc(另存为空白和空文档)。

CombinedTable变量是12个列表的列表(模板中的每一列一个,尽管只有7个包含数据)。这12个列表中的每个列表都包含另一个带有单元格数据的列表,该单元格数据的长度等于要写入该列中表的行数。这意味着每一列写入的行数各不相同。

编辑:更仔细地查看docs,它指出我不能在同一行中多次使用%tr。我想我将不得不使用一个遍历%tc%tr的循环(我尝试过并且无法正常工作)。关于如何实施此建议?特别是在单词文档的一侧。谢谢!

我需要使用一系列数据(在二维列表'CombinedTable'中)来填充MS Word模板中的表。该表有7列,因此我尝试使用docxtpl模块进行以下操作:...

答案

我能够满足我的要求,但是我的解决方案可能并不适合所有情况。我只是在一个文档中设置了7个不同的表格,该表格具有7列,并调整了边距/边界以适应表格所需的尺寸。在我的问题中,这7个表中的每个表都具有与image相同的docxtpl语法,它们之间的小缓冲区列被word文档中的列替换。

以上是关于使用docxtpl生成多列表的主要内容,如果未能解决你的问题,请参考以下文章

poi根据模版生成多页word,并压缩下载

轻量级ORM 利用T4模板 批量生成多文件 实体和业务逻辑 代码

如何鞋子批发生成多站点

如何在ios中动态生成多页pdf时处理分页

使用循环生成多个子图

如何在 nodejs 中侦听和生成多个子进程