[QiitadonAdventCalender2019]同じ雛形かつ大量のExcelファイルを一括処理するツールをPython3で作りました

Qiitadon Advent Calender 2019,12月21日分の記事です.

おことわり

(まだ)エンジニアではない人間が趣味で書いたコードなので,汚い部分,無駄な部分,その他諸々あると思いますが,小学生の自由研究を見る感覚で温かく見てもらえると有り難いです(もちろんアドバイス等あればコメント欄でお気軽にどうぞ)

ツール概要

例えば,組織内(社内,部内,サークル内etc)で,調査やアンケートをしたり,届け書を集めたりするときに下のスクショのようなExcelファイルを用意し,それを皆に記入してもらってメールで集める...みたいなシチュエーションで使えそうなPythonツールを作成してみました.現代はGoogle フォームという文明があるが気にしない

今回は,諸事情につき「新潟県内に所在する某工学系サークルの入部届」という例でご説明します.(プロフィールページ参照すれば大体察しがつく)

雛形Excelファイル(下図,以下フォームと呼ぶ)
この中のセルに,記入者に色々書いてもらうというイメージ.そしてこのファイルが大量にあなたの手元にあるという風に考えてもらいたいです.

そして,そのデータを下のExcel 名簿(下図,以下テーブルと呼ぶ)にまとめる.このまとめ作業をPythonで自動化します.

ツールの使い方

フォルダ構造を以下のようにします.ファイル・フォルダの名前は任意.

ー data(フォルダ)
|ー <記入済みのフォームファイルをいっぱい置いとく>
ーtable.xlsx<テーブル用Excelファイル>
ーtable_empty.xlsx<空のテーブル>
data_importer.py<ツール本体>

またPython関係の準備ですが,

  • Python 3.x系を入れる
  • pipを入れる
  • pipでopenpyxlというパッケージを導入する

この3つをやれば使えます(おそらく)

あとはソースコードの定数部分を環境に応じて変更し,data_importer.pyをターミナル(コマンド プロンプト)で実行するだけ.

ちなみに注意点ですが,

  • Ubuntuで動作確認した.のでWindowsで動くかは不明だけど多分動く...はず
  • テーブル用Excelファイルとdataフォルダ内のExcelファイルは日本語のファイル名だと正常に動作しない可能性.

こっから色んな技術的?説明を入れようと思ったのですが,何も書くことが思いつきません...
(こういう文章書くの不慣れなんですごめんなさい)

何か書くことというと,Excel ファイルの処理には(上にちらっと書きましたが)openpyxlというパッケージを使ってます...
そんくらいです.

以上,自作Python作成ツールの紹介でした.

関連リンク

PythonでExcelファイル(xlsx)を読み書きするopenpyxlの使い方 | note.nkmk.me

コメント

Comments powered by Disqus