我的程序从docx获取所有合并字段,查找一些特定的单词并替换它们。
但是我需要合并字段与文档中插入的顺序相同。
如果我在单词中有此内容:
<
有<<市场。员工在<<市场>和关闭。关闭时间>,而< 有<<酒店。员工在<<酒店>和关闭。关闭时间>.< 所有者是< .
当我使用 doc 中的 get_merge_fields(( 时,它给了我所有字段,但我希望它们按以下顺序排列:
{'Market.Name', 'Market.Employees', 'Market.ClosesingHour', 'Hotel.Name', 'Hotel.Employees', 'Hotel.ClosesingHour', 'PetShop.Name', 'PetShop.Owner'}
我需要它来创建具有相同顺序的表单,这些表单具有相同的名称,员工,关闭时间等。
我已经解决了这个问题。 get_merge_fields(( 方法返回一个无序数据结构的集合,所以我像这样更改了 get_merge_fields(( 方法:
def get_merge_fields(self, parts=None):
if not parts:
parts = self.parts.values()
fields = []
for part in parts:
for mf in part.findall('.//MergeField'):
fields.append(mf.attrib['name'])
return fields