我用Python和Pandas编写了一大堆代码,它们都很好用。但现在我必须在word文档中填充一堆表。理想情况下,我希望将一堆Mergefield写到一个表中,然后通过word将其与Pandas踢出的csv合并。
我已经开始使用python-docx,但是文档中没有任何关于编写mergefield的内容,除非我弄错了。像这样的东西是蜜蜂的膝盖:
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如下所示:
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"MERGEFIELD obviosulyyournotagolfer", PreserveFormatting:=True即使只是在文档中编写一个很大的合并字段列表也会有很大帮助。任何意见都将非常感谢。
我也一直在使用docx-mailmerge,但据我所知,它只允许你将数据合并到已经存在的合并字段中。谢谢你的帮忙!
发布于 2017-08-11 22:01:00
你在找像python-docx-template这样的东西吗?它允许您为Microsoft Word文档创建类似JJIA2的模板。这可能涉及创建表或其他自动填充的字段。它还允许您以您想要的方式设置文档的格式和样式
下面是一个例子:
{%tr for a in alerts %}
{{ a.date }} {% cellbg a.bg %}{{ a.type }} {{r a.desc }}
{%tr endfor %}这可能会出现在单词doc中。在github上还有其他类似的表格示例。
https://stackoverflow.com/questions/41903451
复制相似问题