2017-01-27 6 views
0

나는 파이썬과 팬더로 많은 코드를 만들어 냈다. 하지만 지금은 워드 문서에 여러 개의 표를 채워야합니다. 이상적으로 나는 여러 Mergefields를 테이블에 쓴 다음 Pandas가 쫓아 낸 CSV로 단어를 병합하고 싶습니다.Word 편지 병합 필드를 Python을 사용하는 MS Word에 작성

필자는 python-docx로 시작했지만 필자가 잘못하지 않는 한 mergefields 작성에 대해서는 문서에 아무것도 없다. 이런 식으로 뭔가는 꿀벌 무릎 같습니다

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을 잘 알고도 해요,하지만 난 아무데도 병합 필드를 작성하는 문서를 찾을 수 없습니다. MERGEFIELD를 삽입 할 때 나는 단어 매크로를 기록했고 같은 VBA 보인다 : 심지어 단지 큰 도움이 될 것입니다 문서에 mergefields의 큰 목록을 작성

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ 
    "MERGEFIELD obviosulyyournotagolfer", PreserveFormatting:=True 

. 모든 입력을 많이 주시면 감사하겠습니다.

나는 또한 docx-mailmerge로 게임을 해왔지만, 내가 말할 수있는 것부터는 이미 존재하는 병합 필드에만 데이터를 병합 할 수 있습니다. 당신의 도움을 주셔서 감사합니다!

+0

나는 조금 혼란스러워. 장소 소유자 (예 : 병합 필드)가있는 템플릿 문서가 있고 CSV 데이터에 병합해야합니까? 자리 표시자를 즉시 ​​작성한 다음 csv 데이터에 바인딩하고 싶습니까? 아니면 csv 데이터로 MS Word 테이블을 채우려는 것입니까? – Parfait

+0

너무 명확하지 않아서 죄송합니다. 즉석에서 자리 표시자를 작성한 다음 CSV 데이터에 바인딩하려고합니다. 기본적으로 템플릿을 만듭니다. 최종 결과는 csv 데이터가 포함 된 MS Word 테이블이되지만 많은 레코드가 있으므로 기존 방식을 사용하여 ms 테이블에 데이터를 쓸 수 없습니다. –

+0

[XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)와 같은 느낌입니다. 편지 병합 Word 표는 묻지 않는 첫 번째 문제의 시도 된 솔루션입니다. 이 CSV 데이터의 최종 목표는 무엇입니까? 보고서를 작성 하시겠습니까? 문서를 보내시겠습니까? 그럼에도 불구하고 셀 범위를 복사하고 Word에서 표로 붙여 넣을 수 있으므로 Excel을 매체로 사용하십시오. – Parfait

답변

0

python-docx-template과 같은 것을 찾고 계십니까? Microsoft Word 문서 용 jinja2와 유사한 템플릿을 만들 수 있습니다. 테이블 또는 자동 채워진 필드를 만드는 작업이 포함될 수 있습니다.

{%tr for a in alerts %} 
{{ a.date }} {% cellbg a.bg %}{{ a.type }} {{r a.desc }} 
{%tr endfor %} 

워드 문서에 표시 할 수 뭔가 : 그것은 또한 당신이 포맷하고 문서 당신이 원하는 방법과 하 여기

스타일을 할 수 있도록하는 것은 예입니다. github에는 다른 테이블 예제가 있습니다.