猫山さんの日記

写真付きで日記や趣味を書くならgooブログ

給与明細PDF送信

2022-02-11 | 日記

やめときゃいいのに、給与明細をメールで送る件に着手してしまった。
Pythonの基礎は昨年の3月にPyQで学んだんだけど、きれいに忘れている。
Djangoで統計調査員台帳を作ろうとしていたんだけど、
6月頃コロナ対応の人員としてMさん取られて、
帰宅するとクタクタで勉強する気力がなかった。
7月には後頭部に円形脱毛が5つもできて、
このまま禿げるんじゃないかと本当に心配だった。
でも10月にMさんが戻ってきて、最近少し毛が生えてきた。あー良かった。

Pythonはライブラリが充実していて、ネット上に情報が多いし、
切り貼りで何となく作れてしまう。すごいなー。
まずはopenpyxlで職員番号、メールアドレス、パスワード、送付可否を
記したExcelファイルを読み込んで辞書を作る。
次にcsvで給与明細CSVから支給年月と支給対象職員のリストを作る。
そしてpdfminerで給与明細PDFの1ページ目から支給年月を取り出し、
CSVとPDFの支給年月が一致しているか、総ページ数が正しいかをチェックする。
途中で止まることも想定し、PDF出力先にある最終ページを取得し、
その次のページからスタートできるようにしておく。
最後にPyPDF2で給与明細PDFを1ページずつパスワードを付けて保存し、
smtplibでメールを送信する。
とりあえず動作した。

loggingでログを出力しよう。
##### 送信開始 #####
処理対象件数:〇〇〇件
メール件名:〇〇年〇月度 給与明細
送信件数:〇〇〇件
スキップ件数:〇件
##### 正常終了 #####
いい感じだ。

設定はconfigparserでiniファイルを読み込むようにしたんだけど、
普通はどうするのかな。
グローバル変数に保存するようにしたら、何だか不格好な仕組みになってしまった。
これは、そのうち勉強しよう。

最後にPyInstallerでEXE化しよう。
職員係のPCにpythonをインストールしなくて済むので便利だね。
サイズはやたらデカいけど、ちゃんと動作した。
職員係喜ぶかな。



最新の画像もっと見る

コメントを投稿