python - 有没有办法从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 等具有相同顺序的表单。
解决方案
我已经解决了这个问题。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
推荐阅读
- python - 试图获取私有 api 的访问令牌
- javascript - SetState 动态修改对象值
- java - Java需要输入两次
- spring-integration - javax.mail.FolderClosedException: * BYE JavaMail Exception: javax.net.ssl.SSLException: Connection timed out (Read failed) for IMAP
- python - 使用 Python 从文本文件中列出具有特定类型的书名
- python - 如何使“/etc/supervisord.conf”中的环境变量在shell或python中工作?
- ruby-on-rails - 在 rake 任务中获取 rails gem 的名称
- html - 如何更改 IE 中几个禁用的选择字段的颜色
- hugo - 范围内的访问参数名称
- java - 对象适合Java中的Gridpane