对DOCx(Microsoft Office Word)文件执行邮件合并
docx-mailmerge的Python项目详细描述
对office open xml(docx)文件执行邮件合并。可用于任何 无需安装Microsoft Office Word的系统。支持Python2.7, 3.3及以上。
安装
使用pip:
安装$ pip install docx-mailmerge
用法
打开文件。
from mailmerge import MailMerge with MailMerge('input.docx') as document: ...
列出所有合并字段。
print document.get_merge_fields()
合并字段,以kwargs格式提供。
document.merge(field1='docx Mail Merge', field2='Can be used for merging docx documents')
合并表行。在模板中,将mergefield添加到所需的行中 指定为模板。将此合并字段的名称提供为anchor 参数。第二个参数包含具有 合并字段替换。
document.merge_rows('col1', [{'col1': 'Row 1, Column 1', 'col2': 'Row 1 Column 1'}, {'col1': 'Row 2, Column 1', 'col2': 'Row 2 Column 1'}, {'col1': 'Row 3, Column 1', 'col2': 'Row 3 Column 1'}])
从0.2.0版开始,您还可以将这两个单独的调用合并为 单一调用merge。
document.merge(field1='docx Mail Merge', col1=[ {'col1': 'A'}, {'col1': 'B'}, ])
从0.2.0版开始,还提供了模板合并功能。 这将为列表中的每个项创建模板的副本,执行合并, 用分页符把它们分开。
document.merge_pages([ {'field1': "Foo", 'field2: "Copy #1"}, {'field1': "Bar", 'field2: "Copy #2"}, ])
将文档写入文件。这应该是一个新文件,因为ZipFile无法修改 现有的zip文件。
document.write('output.docx')
有关更多信息和示例,请参见单元测试和这篇关于实用业务python的漂亮文章Populating MS Word Templates with Python。
待办事项/愿望清单
- 图像合并。
贡献
- 在github上派生存储库并开始黑客攻击
- 创建/修复单元测试
- 发送包含更改的拉取请求
单元测试
为了确保库按照设计的方式运行,unit 使用测试。当提供新的特征或修复错误时,应该有一个 演示它的单元测试。运行测试套件:
python -m unittest discover
学分
这个库是由Bouke Haarsma和贡献者编写的。