Python お金の健康

Pythonを仕事に使ってできること【書状作り】

こんにちは、ウチダです。

休日に趣味でプログラミングを独学し、
家計簿や顧客リストの作成、ブログでの
データ分析に役立てています。
 
副業ではFXの自動売買プログラムを販売しています。

プログラミング言語Pythonを勉強したいけど、

「仕事に使えるプログラムを作れるの?」

「本当に効率化できるの?」

と悩んでいませんか?

実はPythonは仕事の効率化にとっても

役立つんです。

なぜこんなことが言えるかといえば

私が実際に保険代理店でPythonを使っているからです。

この記事ではPythonを仕事に使う例として

書状づくりのプログラムを紹介します。

この記事を読み終えると、

Pythonを使ってできることが

具体的にイメージできるようになります。

Pythonを仕事に使ってできること!書状をプログラムでつくろう

Pythonを仕事に使ってできること!書状をプログラムでつくろう

今回は実際に勤務先の保険代理店で使っている

Pythonのプログラムです。

ご契約者様に保険の更新を案内するために

書状を出しています。

その際、基にするデータはこちらです↓

renew.xlsx

満期日、ご契約者様の名前、保険の種目、

旧証券番号、保険料などが一覧になっている

.xlsxファイルです。

これをプログラムで処理して、

こんな書状にします↓

表面

裏面

※勤務先の情報を伏せるため、内容を一部変更しています。

ご契約者様のお名前や保険種目は

自動で書き換えるようになっています。

お客様ごとに作成し、両面印刷して

郵送で送る形です。

以前は手書きで名前などを入れていたため、

毎回2時間ほどかかっていたようです。

このプログラムなら5秒で処理できるので、

かなり楽になると思います。

Pythonを仕事に使った例でのプログラムのコード

#ライブらいのインポート
from pathlib import Path
from openpyxl import load_workbook, Workbook
from openpyxl.styles.alignment import Alignment
from openpyxl.styles import Font
from openpyxl.drawing.image import Image
import datetime

#エクセルファイルの読み込み
wb = load_workbook('renew.xlsx')
ws = wb['Sheet1']

#エクセルのデータをプログラムで読み込める用に処理する
row_list = []
for row in ws.iter_rows(min_row=2, max_row=ws.max_row,
                       min_col=1, max_col=ws.max_column):
    cell_list = [cell.value for cell in row]
    row_list.append(cell_list) 

today = datetime.date.today() #今日の日付を取得
date = today.strftime("%Y年%m月%d日") #日付の書式を変更

for i in row_list:
    wb.create_sheet(title=str(i[4])) #旧証券番号のシートを作る
    ws_new = wb[str(i[4])]
    ws_new.column_dimensions['B'].width = '80' #B列の幅を30文字に設定
    
    ws_new.cell(2,2).value = date #日付を記入
    ws_new.cell(2,2).alignment = Alignment(horizontal='right') #右寄せ
    ws_new.cell(2,2).font = Font(size=12)
    
    ws_new.cell(3,2).value = i[2] + '  様' #契約者名を記入
    ws_new.cell(3,2).font = Font(size=14, underline='single')
    
    senders = ['合同会社マネーテック',
              '本社',
              '〒郵便番号',
              '住所',
              'TEL ',
              'FAX ',
              'e-mail ',
              '定休日'        
    ]
    
    for num in enumerate(senders):
        ws_new.cell(num[0]+4,2).value = num[1] #送付元を記入
        ws_new.cell(num[0]+4,2).font = Font(size=12)
        ws_new.cell(num[0]+4,2).alignment = Alignment(horizontal='right') #右寄せ
    
    ws_new.cell(13,2).value = '〜保険契約の更新について(案内)〜' #タイトルを記入
    ws_new.cell(13,2).font = Font(size=14)
    ws_new.cell(13,2).alignment = Alignment(horizontal='center') #中央寄せ
    
    n = i[0].split('・')
    expire = '{0}年{1}月{2}日'.format(n[0], n[1], n[2])    
    sentences = ['いつもお世話になっております。',
                 '{0}様にご契約いただいている{1}について、満期日が'.format(i[2],i[1]),
                 '{0}となっております。'.format(expire) ,
                 '',
                 '近日中に保険会社より継続証が送付されますので、ご契約内容',
                 'をご確認の上、変更事項(下記に記載)がございましたらマネー',
                 'テックまでご連絡をお願い致します。',
                 '',
                 '更新日(満期日)までに変更事項のご連絡がない場合は、更新前',
                 'と同様のご契約内容にて自動更新されますので、ご了承ください。',
                 '',
                 '今後ともどうぞよろしくお願い致します。'
    ]
    
    for ber in enumerate(sentences):
        ws_new.cell(ber[0]+15,2).value = ber[1]
        ws_new.cell(ber[0]+15,2).font = Font(size=14)
    
    ws_new.cell(28,2).value = '変更事項のチェックリスト' #タイトルを記入
    ws_new.cell(28,2).font = Font(size=14)
    ws_new.cell(28,2).alignment = Alignment(horizontal='center') #中央寄せ
    
    check_list = ['以下の項目に1つでも該当したら、保険のぽるとまでご連絡を',
                  'お願い致します。',
                  '',
                 '□住所・電話番号が変わった。',
                 '□家族構成に変化があった。',
                 '  (例:お子様の誕生など)',
                 '□保障内容を変更したい。',
                 '□契約者、被保険者を変更したい。',
                 '□口座・クレジットカードを変更したい。',
                 '□他の保険会社と比較したい。',
                  '',
                 '★自動車保険に加入されている方は以下もチェック★',
                 '□運転免許証の色が変わった。',
                 ' (例:ゴールドからブルーになったなど)',
                 '□運転者の範囲を変えたい。',
                 '(例:帰省した息子を追加したいなど)'
                  ]
    
    for m in enumerate(check_list):
        ws_new.cell(m[0]+30,2).value = m[1]
        ws_new.cell(m[0]+30,2).font = Font(size=14)
    
    '''
    ウラ面に写真とPRを記載する
    '''
    ws_new.row_dimensions[47].height = 40
    ws_new.cell(47,2).value = 'プログラミングで投資を攻略する' #タイトルを記入
    ws_new.cell(47,2).font = Font(color='FF00FF', size=28)
    ws_new.cell(47,2).alignment = Alignment(horizontal='center') #中央寄せ
    
    image_file = '/home/uchida/ドキュメント/start_business/for_porto/1_renew_letter/hoken_port2.png'
    image = Image(image_file)
    image.width = 500
    image.height = 300
    ws_new.add_image(image, 'B48')
    
    messages = ['合同会社マネーテックは投資向けの',
                '「プログラミングスクールを行っています。',
                ''
               ]
    
    for j in enumerate(messages):
        ws_new.cell(j[0]+64,2).value = j[1]
        ws_new.cell(j[0]+64,2).font = Font(size=14)
        
    ws_new.cell(67,2).value = 'プログラミングスキルで資産を増やしていきたい' #タイトルを記入
    ws_new.cell(67,2).font = Font(size=14, bold=True)
    
    texts = ['',
                '2022年に稼ぐ力を身につけませんか?',
                'これからも{0}様が安心して人生を旅できるように応援します。'.format(i[2]),
                '',               
               ]
    
    for t in enumerate(texts):
        ws_new.cell(t[0]+68,2).value = t[1]
        ws_new.cell(t[0]+68,2).font = Font(size=14)
    
    ws_new.cell(72,2).value = 'マネーテックに相談できること!' #タイトルを記入
    ws_new.cell(72,2).font = Font(size=14)
    ws_new.cell(72,2).alignment = Alignment(horizontal='center') #中央寄せ
    
    image_file2 = '/home/uchida/ドキュメント/start_business/for_porto/1_renew_letter/porto_business.png'
    image2 = Image(image_file2)
    image2.width = 500
    image2.height = 300
    ws_new.add_image(image2, 'B73')
    
    ws_new.cell(89,2).value = 'お気軽にご連絡・ご来店ください。' 
    ws_new.cell(89,2).font = Font(size=14)
    
#ファイルを保存する
wb.save('test.xlsx')

プログラムはopenpyxlを使っています。

renew.xlsxという顧客リストのエクセルファイルを読み込み、

プログラム上で処理できるようにします。

row_listにエクセルデータを1行ずつ

リスト型で取り込み、

あとはfor文内で書状を作っています。

このプログラムはこちらの本を読んで作りました。


今回はPythonを仕事に使った一例として、

書状づくりのプログラムを紹介しました。

ただ、本だけでは一定のレベルまでしか

スキルアップできません。

もしPythonを本気で学びたいと思ったら

プログラミングスクールを検討することを

おすすめします。

稼げるエンジニアになるための

プログラミングスクール↓

ここまで読んでくださり、ありがとうございました。^^

-Python, お金の健康
-