在前面一期文章 使用Pandas、Jinja和WeasyPrint制作pdf报告 中我分享了如何使用HTML模板来创建pdf报告的方法。 虽然pdf很不错,但更多的人实际上在用微软的WORD来操作文档。实际上对于用户来说,创建所需的模板会更加简单,该模板支持Word中所需的所有自定义格式,而不是尝试使用HTML + CSS。 幸运的是,有一个库支持在python中进行MS Word 邮件合并。 这种方法的优点是可以在任何系统上运行 - 即使没有安装Word。 背景使所有这一切成为可能的包叫做 我知道标准的Word方法是将此进程称为 安装
pip install lxml
pip install docx-mailmerge WORD合并字段为了使docx-mailmerge正常工作,您需要创建标准Word文档,并定义适当的 启动Word并创建基本文档结构。 然后将光标放在应插入 从“字段”对话框中,从“字段名称”列表中选择“MergeField”选项。 在“字段名称”中,输入字段所需的名称。 在这种情况下,我们使用的是商业名称。 单击确定后,您应该在Word文档中看到类似这样的内容:<< From >>。 您可以继续创建包含所有必填字段的文档。 简单的合并创建Word文档后,填充字段值是一项很简单的操作。 from mailmerge import MailMerge 我们的 下面我们先看看docx文档中有哪些合并字段 document = MailMerge(template) {'From', 'date', 'FromUserName', 'To', 'ToUserName'} 我们发现 document.merge(
From='123456dadeng@qq.com',
FromUserName='大邓',
To = '654321guanzhuzhe@qq.com',
ToUserName='关注者的昵称',
date='{:%d-%b-%Y}'.format(datetime.date.today()) 这是简单的Word文档填充效果 插入表格生成模板时的另一个常见需求是有效地填充值表格中的值。 在我们的示例中,我们可以在包含客户购买历史的信件上附上展览。 在完成模板时,我们不知道要包含多少行,并且 在本部分构建模板,请创建一个包含1行的标准Word表,并将字段插入相应的列中。 无需特殊格式。 它应该看起来像这样: 现在我们定义了一连串的字典,用于填充到表格中去 document2 = MailMerge('purchasehistory.docx') 最终结果是每行填充了我们需要的值,并保留了我们在模板文档中定义的默认表格式: 精选文章 |
|