循环浏览Python MailMerge Docx模板中的合并字段

2024-09-28 18:12:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一个脚本,自动提取一些数据,然后将其写入已经包含合并字段的Docx文件中的特定合并字段。 问题是我需要编写大约60-70个单词的文档,每个文档都有不同的合并文件名。 我想做的是循环遍历文件中的所有合并字段,比如说,其中一个合并字段的名称为“UsedMemoryLast”,然后我会打开一个dict(已设置),其中有一个带有该合并字段名称的键。 我遇到的问题是,我还没有找到一种方法让python将值插入到正确的合并字段中

from mailmerge import MailMerge

values = {'UsedMemoryLast': '10.92 GB', 'UsedMemoryMax': '11.25 GB', 'UsedMemoryMed': '11.05 GB', 
          'UsedMemoryMin': '10.28 GB'}

with MailMerge("test.docx") as word_doc:
    for merge_field in word_doc.get_merge_fields():
       word_doc.merge(merge_field = values[merge_field])
    word_doc.write("test-output.docx")

在本例中,我正在为所有合并字段运行for循环,其中一个字段名为“UsedMemoryLast”,我想在该字段中插入上面创建的dict中该键的值。 在运行上述代码时,我相信python试图做的是将值插入名为“merge_field”的字段,而不是“UsedMemoryLast”mergefield


Tags: 文件文档testfieldfordocmergedict