【发布时间】:2021-10-04 10:38:03
【问题描述】:
我在 docx 中有一个表,我希望仅当字符串中存在子字符串时才将行添加到表中。已在此处包含我的表格模板图像: template for docx table
enter image description here 我有一个数据集 x,其中包含一组名称和数字,例如:{1:{ name:aryan,number:1},2:{anand,2},3:{aishwarya,3}}。我希望创建一个表格,以便我填充表格行,以便我只获得包含子字符串“arya”的名称数量。图像包含我能够制作的内容,但在 %tr 中存在复杂条件问题标签,请帮忙 请帮助正确实施。
需要的输出: |C1 | |---------------| | 1 | | 3 |
我能够过滤数据,但是由于 for 和 endfor 循环,表格中会添加额外的行和空格 请帮忙删除它。
from docxtpl import DocxTemplate
tpl = DocxTemplate('templates/dynamic_table_tpl.docx')
context = {1:{ name:aryan,number:1},2:{name:anand,number:2},3:{name:aishwarya,number:3}}
tpl.render(context)
tpl.save('output/dynamic_table.docx')
模板(如图):
|C1 |c2 |c3 |c4. |c5. |
|--------------------------------------------------|
| {%tr for i in x %} {%tr if "arya" in i.name %} |
|--------------------------------------------------|
| {{ i.number}} |
---------------------------------------------------|
|{%tr endif %}{%tr endfor %} |
----------------------------------------------------
【问题讨论】:
-
请不要包含图片。 直接包含您的代码
-
如果您这样做,您可能会注意到您已经包含了两次完全无用的图像,其中根本没有代码(当然也不是模板)。当你在这的时候,解释一下'只有当子字符串存在于字符串中'的意思(哪个字符串?)。你问的是非常可行的,但要回答我们需要看到这个问题,而不是在虚空中猜测它;)
-
我真的很想帮忙,相信我,但你的问题根本没有意义。 什么你想用jinja2做什么? 什么是“一组名称”?您需要提供一些代码(即使您不知道如何实现它:提供所需的输入和输出)。通过编辑问题来做到这一点——这样每个人都可以在不滚动 cmets 的情况下快速看到它。
-
对,这样更清楚一点。请张贴您用来制作该表格的代码(我不知道如何使用 jinja 制作 docx 表格,我不会去寻找)。并将您的代码包装在 ``` 中,这样它就可以很好地呈现:)
-
我发的图片是tpl的内容
标签: python jinja2 docx python-docx