首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python将Word邮件合并字段写入MS Word

使用Python将Word邮件合并字段写入MS Word
EN

Stack Overflow用户
提问于 2017-01-28 05:40:49
回答 1查看 5.6K关注 0票数 0

我用Python和Pandas编写了一大堆代码,它们都很好用。但现在我必须在word文档中填充一堆表。理想情况下,我希望将一堆Mergefield写到一个表中,然后通过word将其与Pandas踢出的csv合并。

我已经开始使用python-docx,但是文档中没有任何关于编写mergefield的内容,除非我弄错了。像这样的东西是蜜蜂的膝盖:

代码语言:javascript
复制
 document = Document()

 document.add_heading('Does this merge thing work', 0)

 table = document.add_table(rows=1, cols=3)
 hdr_cells = table.rows[0].cells
 hdr_cells[0].text = 'Qty'
 hdr_cells[1].text = 'Id'
 hdr_cells[2].text = 'Desc'
 row_cells = table.add_row().cells
 row_cells[0].text = "MERGEFIELD yo " #doesn't work, just string. 
 row_cells[1].MERGEFIELD = "Funky"    #MERGEFIELD not a table object
 row_cells[2].mailMerge = "Nice"      #This type of thing would be dreamy

我也熟悉win32com,但是我在任何地方都找不到编写合并字段的文档。插入合并字段时,我在word中录制了一个宏,VBA如下所示:

代码语言:javascript
复制
  Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
    "MERGEFIELD  obviosulyyournotagolfer", PreserveFormatting:=True

即使只是在文档中编写一个很大的合并字段列表也会有很大帮助。任何意见都将非常感谢。

我也一直在使用docx-mailmerge,但据我所知,它只允许你将数据合并到已经存在的合并字段中。谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

发布于 2017-08-11 22:01:00

你在找像python-docx-template这样的东西吗?它允许您为Microsoft Word文档创建类似JJIA2的模板。这可能涉及创建表或其他自动填充的字段。它还允许您以您想要的方式设置文档的格式和样式

下面是一个例子:

代码语言:javascript
复制
{%tr for a in alerts %}
{{ a.date }}    {% cellbg a.bg %}{{ a.type }}   {{r a.desc }}
{%tr endfor %}

这可能会出现在单词doc中。在github上还有其他类似的表格示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41903451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档