高専中退系エンジニアの意識高めな奴

高専をやめてwebエンジニアになったそーとくが、日々思ったことや意識の高そうなことを徒然なるままに書く意識の低いブログです。当面の目標は続けることです。

pythonで席替えアプリを組んだ話

お久しぶりです、そーとくです。
前からぼちぼちPythonの勉強をしていて、何となくわかってきたので席替えアプリを作ってみました。
やりたいこととしては

  1. 34人分の出席番号をランダムにならべかえる
  2. Excelに書き出す

というシンプルな感じ。
PythonからExelを編集するにはopenpyxlというライブラリが便利なのでそちらをインストール。

pip install openpyxl

こことかを参考にポチポチ書いてみる。
Python openpyxlでExcelを操作 - Qiita

とりあえず今回使うライブラリはopenpyxlとrandomなのでそちらをimport

import openpyxl as px
import random

ワークブックを作成
ワークシートの名前を決める

wb = openpyxl.Workbook()
sheet = wb.get_sheet_by_name('sheet')
sheer.title = '席替え'

出席番号のリストを作成、シャッフル

seki = list(range(1,35))
random.shuffle(seki)

各セルにリストの各値を代入
1列6人で最後の列だけ4人で6列なので

sheet[A1].value = seki[0]
sheet[A2].value = seki[1]
sheet[A3].value = seki[2]
sheet[A4].value = seki[3]
sheet[A5].value = seki[4]
sheet[A6].value = seki[5]
...
sheet[F4].value = seki[34]

…言い訳をさせてもらうとこれ書いた時レポート終わったばっかで何も考えたく無かったんです…

ついでにその場で出力も

print(sheet[A1].value,sheet[B1].value ,sheet[C1].value,sheet[D1].value,sheet[E1].value,sheet[F1].value)
print(sheet[A2].value,sheet[B2].value ,sheet[C2].value,sheet[D2].value,sheet[E2].value,sheet[F2].value)

print(sheet[A6].value,sheet[B6].value ,sheet[C6].value,sheet[D6].value,sheet[E6].value)

…まあD科生だしね()


最後にxlsxファイルを保存

wb_save('ディレクトリ//ファイル名')

結果:きちんとExcelに出力を書き出せた。

ただしこれ、1度書き出すと書き出したファイル消さないと新しく書き出せないので注意。

とりあえずもっとシンプルにかけるはずなので書いて、条件とか付けたりしたいですね。
ではさようなら。