对 docx (Microsoft Office Word) 文件执行邮件合并
项目描述
对 Office Open XML (docx) 文件执行邮件合并。无需安装 Microsoft Office Word 即可在任何系统上使用。支持 Python 2.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 添加到您要指定为模板的行。提供此 MergeField 的名称作为锚 参数。第二个参数包含用于 MergeField 替换的具有键值对的行。
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 版本开始,还有模板合并的功能。这将为列表中的每个项目创建一个模板副本,进行合并,并按分页符或分节符分隔它们(请参阅函数文档)。
使用此功能时,请确保不要使用注释、脚注、书签等。这是因为这些元素具有 id 属性,该属性必须是唯一的。这个库不处理这个,导致无效的文档。
document.merge_templates([
{'field1': "Foo", 'field2: "Copy #1"},
{'field1': "Bar", 'field2: "Copy #2"},
], separator='page_break')
将文档写入文件。这应该是一个新文件,因为ZipFile不能修改现有的 zip 文件。
document.write('output.docx')
有关更多信息和示例,另请参阅单元测试和这篇关于 Practical Business Python 上的用 Python 填充 MS Word 模板的精彩文章。
待办事项/愿望清单
图像合并。
贡献
在 GitHub 上 fork 存储库并开始 hacking
创建/修复单元测试
发送包含更改的拉取请求
单元测试
为了确保库按照设计的方式执行,使用了单元测试。在提供新功能或修复错误时,应该有一个单元测试来演示它。运行测试套件:
python -m unittest discover
学分
这个库是由Bouke Haarsma和贡献者编写的。
项目详情
关
docx- mailmerge -0.5.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 6fbe353bd2f87dc6621d9add7bd04896181a469cc543502f1acc0c2444fd632a |
|
| MD5 | a2c674c92efc7e08a6c3927f8048e55e |
|
| 布莱克2-256 | c11ac9290ea9c565cdcf504a2b2e400dfaebe27a64141f87101a6508becef52e |
关
docx_mailmerge -0.5.0-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 0c9d8a0e9230ec337d7e43014280fe6c0b7773adadbfe5f1d9f764d37f072137 |
|
| MD5 | a3e41018ccb23eb806134334230aa0d1 |
|
| 布莱克2-256 | 8fe75dd76f3e1023535e114f45cfab39af7ab716c6f0b29600ee52dff9cc4161 |