Googleフォーム等で収集した部員情報のCSVデータを読み込み、所定のExcelテンプレート(部員名簿)に自動で整形・入力・出力するPythonスクリプトです。
- 自動ソート機能: 学年(専攻科 > 本科高学年 > 低学年)および分野・組(情報、機械、電子、電気、建築などの指定順)で自動的に優先順位付けし、並び替えます。
- 複雑なレイアウト対応: 1段あたり15名で改行し、右隣のブロック(12列オフセット)に続けて自動配置するような複雑なExcelレイアウトに対応しています。
- 表記の自動変換: 学年文字列から数字のみの抽出や、分野名からアルファベット略称(情報→J, 機械→M, 建築→A など)への自動変換を行います。
- 合計人数の自動計算: ソートされた名簿データから合計部員数を算出し、所定のセル(K4, W4, AI4など)へ自動で反映します。
- Python 3.x
- pandas
- openpyxl
以下のコマンドで必要なパッケージをインストールしてください。
pip install pandas openpyxlスクリプトは「対話モード」と「コマンドライン引数」の2つの方法で実行できます。
引数なしで実行すると、プロンプトが表示されファイル名の入力を求められます。
python generate_list.py実行後、以下のように入力してください。
- 読み込むCSVファイル名を入力:
継続,新規入部確認フォーム2026(回答).csvなど - テンプレートのExcelファイル名を入力:
部員名簿 2026年5月18日.xlsxなど
あらかじめファイル名を引数として渡すことで、一括で処理できます。
python generate_list.py <入力CSVファイルパス> <テンプレートExcelファイルパス>例:
python generate_list.py "継続,新規入部確認フォーム2026(回答).csv" "部員名簿 2026年5月18日.xlsx"スクリプトが正しく動作するために、入力するCSVには以下の列名が含まれている必要があります。
学年(例: 本科1, 専攻科2)組または分野(例: 情報, 1組, 電子情報システム工学専攻)学籍番号名前を漢字で入力してください通学区分
処理が正常に完了すると、同じディレクトリに 【完成版】<元のテンプレートファイル名> というファイル名でExcelが保存されます。