【问题标题】:Jinja2: Word experienced an error trying to open the fileJinja2:Word 在尝试打开文件时遇到错误
【发布时间】:2020-08-07 03:25:37
【问题描述】:

我承认这个问题很模糊,但这就是我得到的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 还比较陌生。

【问题讨论】:

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


    【解决方案1】:

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

    之后你不应该得到单词经验错误。 我希望:)

    【讨论】:

      【解决方案2】:

      从 word 文件的上下文菜单中尝试Edit。或者您可以在结尾处为来自Trusted Center settings 的所有文档禁用protected view

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-12
        • 2016-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-29
        • 2020-11-17
        • 1970-01-01
        相关资源
        最近更新 更多