Word自動化

pythonと自動化

  1. HOME
  2. Word

契約書や送付状をテンプレで自動化

Word操作を自動化するためには、python-docxモジュールを利用するのでコマンドラインでインストールしておく。

pip install python-docx

python-docxの基本的な使い方

# python-docxをつかう宣言文
import docx

# 新規ドキュメント作成
doc = docx.Document()

# 既存ワードファイルの読み込み
doc = docx.Document('ファイル名.docx')

# Wordファイルへの保存
doc.save('ファイル名.docx')

顧客ごとの契約書類など

「契約書template.docx」等のテンプレファイルを用意して「■今日の日時」等変更箇所のルール決めをしておけば顧客ごとのデータが複数の書類に渡って一瞬で作成可能になる。同じ入力を何度もしなくて良いし、誤入力も防げる!

import docx
import datetime

template_file = '契約書template.docx'
save_file = '契約書【会社名】.docx'
now = datetime.datetime.now()

card = {
    '■今日の日時': now.strftime('%Y年%m月%d日'),
    '■契約会社名': '〇〇株式会社',
    '■会社名と名前': '〇〇株式会社 代表取締役 浦島太郎',
    '■会社の住所': '福岡県福岡市博多区〇丁目〇〇',
    '■契約金': '金150,000円',
    '■業務': 'コンサルタント業務請負代金',
    '■請求の締め日': '令和4年〇月付け請求書分',
}

doc = docx.Document(template_file)

for p in doc.paragraphs:
    for k, v in card.items():
        if p.text.find(k) >= 0:
            p.text = p.text.replace(k, v)

doc.save(save_file)

書式の設定

上記のプログラム実行では書式が削除されてしまいます。必要な個所は書式設定しておきましょう。

要素 説明 利用例
font フォントプロパティアクセス font = p.runs[0].font
bold 太字 font.bold = True
italic 斜体 font.italic = True
underline 下線 font.underline = True
size 文字サイズ font.sizu = docx.shared.Pt(20)
color.rgb 文字色 font.color.rgb = docx.shared.RGBColor(255,0,0)