見出し画像

プログラミング(Python)でExcel自動化⑤

ProgateのPython講座も最後まで終えたので、いよいよ実際にExcelを使ってプログラムを動かしていきたい。

defで関数を定義して(言葉合ってるか?)色々と動かしていきたいところだけど、最初に取り組んだのはExcelを開き、1行目にヘッダーとなる文字列を順に挿入していくこと。

エクセルのA1からA7までに、
"名前","日にち","企業","支店","コメント","備考"
の文字を順番に挿入していく。

もちろん1つずつ挿入していくことはできるが、それでは面白みにかけるので、あえてリストを使って試行錯誤してみた。

【1つずつ挿入例】

wb = openpyxl.Workbook()
sh = wb.active
 
sh["A1"].value = "名前"
sh["B1"].value = "日にち"
sh["C1"].value = "企業"
sh["D1"].value = "支店"
sh["E1"].value = "コメント"
sh["F1"].value = "備考"

wb.save("List.xlsx")


完成形はこちら。

画像1

リスト[ ]を使って順番に挿入していく。
最初に書いたのはこちら、最初に読んだ本(Python×Excel 最速仕事術)の真似事をしようとして完全に頭が狂っていた。

失敗例

wb = openpyxl.Workbook()
sh = wb.active

header = ["名前","日にち","企業","支店","コメント","備考"]
for w_h in range(1,7):
   for head in header:
       sh.cell(1,w_h,head)
   

wb.save("List.xlsx")

いま見てもよく分からない、そして恥ずかしい。。。
繰り返しなんだからfor文だよな、それを重ねれば何となくできるんじゃないか!? それに囚われていた。これでも一応動くから面白い。

コメント 2020-03-03 020221

ここまで来るのにも結構時間かかって・・・
やっとファイルが保存された時は思わずガッツポーズでたんだけど、ファイル開いてみて笑いがこみ上げてきました。

その後も試行錯誤してやっとこさ気付いて、ようやくやりたいことができました。

成功例

wb = openpyxl.Workbook()
sh = wb.active

header = ["名前","日にち","企業","支店","コメント","備考"]
num = 0
for w_h in range(1,7):
   sh.cell(1,w_h,header[num])
   num += 1

wb.save("List.xlsx")

これで冒頭の完成形ができました。
こんなことでもやり方はたくさんある、奥が深いし面白い。
次はこのヘッダーの下に、元あるデータから必要な値を引っ張ってこようと思います。


この記事が気に入ったらサポートをしてみませんか?