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

问题描述 投票:0回答:3

我承认这个问题很模糊,但这就是我遇到的错误

我正在尝试使用名为 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 -%}
),每当我生成并尝试打开文件时,它都会以某种方式导致错误,但我不确定为什么。 我在其他地方有一个类似的
if endif
嵌套
for
循环,它会导致类似的问题,也在它自己的最后
{%- endif %}
行中。

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

python python-3.x ms-word jinja2 python-docx
3个回答
0
投票

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

此后您应该不会遇到单词错误。 我希望:)


0
投票

尝试从 Word 文件的上下文菜单中选择

Edit
。或者您可以对最后的
protected view
中的所有文档禁用
Trusted Center settings


0
投票

我在通过 python 下载文件时面临同样的问题。我已经尝试过所有方法,例如Word中的解锁选项和受信任选项。

© www.soinside.com 2019 - 2024. All rights reserved.