有没有办法从python中的word中获取合并字段?我正在使用 get_merge_fields()

我的程序从 docx 获取所有合并字段,查找一些特定的单词并替换它们。

但我需要合并字段与插入到文档中的顺序相同。

如果我有这个内容的话:

<< Market.Name >> 有 << Market.Employees >> 并在 << Market.ClosingHour >> 关闭,而 << Hotel.Name >> 有 << Hotel.Employees >> 并在 << Hotel.ClosingHour 关闭>>。<< PetShop.Name >> 所有者是 << PetShop.Owner >> 。

当我使用 doc 中的 get_merge_fields() 时,它为我提供了所有字段,但我希望它们按以下顺序排列:

{'Market.Name'、'Market.Employees'、'Market.ClosingHour'、'Hotel.Name'、'Hotel.Employees'、'Hotel.ClosingHour'、'PetShop.Name'、'PetShop.Owner'}

我需要它来创建名称、员工、ClosingHour 等具有相同顺序的表单。


子衿沉夜
浏览 134回答 1
1回答

HUH函数

我已经解决了这个问题。get_merge_fields() 方法返回一个集合,它是一个无序的数据结构,所以我改变了 get_merge_fields() 方法,如下所示:def get_merge_fields(self, parts=None):&nbsp; &nbsp; if not parts:&nbsp; &nbsp; &nbsp; &nbsp; parts = self.parts.values()&nbsp; &nbsp; fields = []&nbsp; &nbsp; for part in parts:&nbsp; &nbsp; &nbsp; &nbsp; for mf in part.findall('.//MergeField'):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fields.append(mf.attrib['name'])&nbsp; &nbsp; return fields
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python