Jinja2:Word尝试打开文件时遇到错误

时间:2020-08-07 03:25:37

标签: python python-3.x ms-word jinja2 python-docx

我承认这个问题含糊不清,但这就是我得到的error

我正在尝试使用名为python-docx-template的python-docx库的派生类创建Word文档模板,该库正在使用Jinja2。

我正在做的是使用Python生成我需要的数据,然后将其发送到我正在构建的docx模板中,以便文档以我想要的格式输出数据。

我的Jinja2模板看起来像这样:

{% if EXCHANGE_RATE %} 
{%- for stringData in EXCHANGE_RATE %}
{{stringData}}
{%- endfor %}
{%- endif %}

请注意,模板代码在表格单元格内。整个数据应该是在单元格本身内生成的(即,不被行隔开)。

这里应该发生的是,模板检查EXCHANGE_RATE列表变量的存在(因为根据情况我可能会或可能不会返回此数据),然后循环数据,结果是这样:

Exchange Rate:-
1 EUR= 1.0 USD
1 EUR= 1.0 GBP

由于某种原因,if endif代码似乎增加了一些我不想要的额外行距(没有它,输出正是我想要的),因此在-的用法各个部分。 我遇到的问题位于最后一行:{%- endif %}

如果我在后面添加一个额外的-(例如{%- endif -%}),则无论何时生成并尝试打开该文件,它都会以某种方式导致error,但不是完全确定为什么。 我在其他地方有一个类似的if endif嵌套for循环,并且也会在自己的最后一个{%- endif %}行中引起类似的问题。

有什么建议吗? 请注意,我对Jinja2还是比较陌生。

2 个答案:

答案 0 :(得分:0)

您可以在可信任的位置定义Word文件的路径。为此,请打开MS word->文件->选项->信任中心设置->信任位置->添加新位置 并添加模板所在的位置

之后,您将不会遇到单词错误。 我希望:)

答案 1 :(得分:0)

从Word文件的上下文菜单中尝试Edit。或者,您可以在最后protected view禁用所有Trusted Center settings的文档。