私はPythonとPandasでたくさんのコードを作りました。しかし、今では、単語の文書にテーブルの束を入れなければなりません。理想的には、Mergefieldsの束をテーブルに書いて、Pandasによって追い出されたcsvと単語をマージしたいと思います。PythonでMS WordにWordの差し込みフィールドを書き込む
私はpython-docxを使い始めましたが、私が間違っていない限り、マージフィールドの作成についてはドキュメントには何もありません。このような何かが蜂の膝のようになります。
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精通んだけど、私はどこにマージフィールドを書くのドキュメントを見つけることができません。ただでさえ文書にMERGEFIELDSの大きなリストを書くことが大きな助けになり
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
"MERGEFIELD obviosulyyournotagolfer", PreserveFormatting:=True
:MERGEFIELDを挿入するとき、私は言葉でマクロを記録してきたし、VBAは次のようになります。どんな入力も高く評価されます。
私もdocx-mailmergeで遊んでいましたが、私が言うことは、既存のマージフィールドにデータをマージすることしかできないからです。ご協力いただきありがとうございます!
ここで少し混乱しています。プレースホルダを持つテンプレート文書(フィールドをマージ)があり、csvデータにマージする必要がありますか?プレースホルダをオンザフライで構築し、それをcsvデータにバインドしますか?またはMS WordのテーブルにCSVデータを入力しようとしていますか? – Parfait
あまりにも明確ではないことを申し訳ありません。私はその場でプレースホルダを作成し、それをcsvデータにバインドしたいと考えています。基本的にテンプレートを作成します。最終結果はcsvデータのMS Wordテーブルになりますが、レコードが多いので、従来の方法ではmsテーブルにデータを書き込むことはできません。 –
これは[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)のように感じます。差し込み印刷Wordテーブルは、あなたが尋ねていない最初の問題の試行された解決策です。あなたはこのCSVデータの最終目標は何ですか?レポートを入力しますか?ドキュメントを送信しますか?それにもかかわらず、セル範囲をコピーしてWordとして表として貼り付けることができるように、Excelをメディアとして使用します。 – Parfait