前回の続き
週一と言ったな。あれは嘘だ。
人が集まらなかったので先週は流局しました。
裏でLambdaをポチポチしながら可能性を探ってました。
CSSとかJSを直接持ってくるのはAPIGWとLambdaで作れないんですかね・・・
CSSとして認識されてないor読み込みタイミングが合ってないのかなという感じでしたが。
開発者モードにしてCSS内の適当な箇所でエンター押すと反映されるという。
エクセルを作る
教科書には今回利用するライブラリのインストールからやっているが、我々はColaboratoryを使うので割愛。
openpyxlというライブラリを使って、まずはA1セルに「hello」を入力しエクセルを保存する。
import openpyxl as excel
book = excel.Workbook()
sheet = book.active
sheet["A1"] = "hello"
book.save("ばなな.xlsx")
簡単にできた。
前回はGAS勉強会をしていたこともあり、エクセルの中の、シートの中のセルという関係性はすんなり理解できていた様子。
エクセルを読み込む/書き込む
エクセルがある前提なので、対象のエクセルがあるかどうかは別途確認する必要がある。
セルの取得方法もセル名を直接入力する方法や、行と列で指定する方法がある。
対象セルのvalueに設定してbookをsaveすれば完成。
セルのcoordinateでセル名を取得可能。
import openpyxl as excel
# チェックしたいならこれ
#import os
#path = 'ばな.xlsx'
#is_file = os.path.isfile(path)
#if is_file:
# print("apple")
#else:
# print("banana")
# exit
book = excel.load_workbook("ばなな.xlsx")
sheet = book.worksheets[0]
# sheet = book.worksheets["Sheet"]はできないようだ
print(sheet.title)
cell = sheet["A1"]
cordinate = cell.coordinate # A1
sheet.cell(row=2, column=1, value="apple")
cell = sheet.cell(row=3, column=1)
cell.value = "melon"
book.save("ばなな.xlsx")
九九の表を作る
rangeでループ回数を設定している。
range(1,10)で1からスタートすることも可能。
import openpyxl as excel
book = excel.Workbook()
sheet = book.active
for y in range(1,10):
for x in range(1,10):
cell = sheet.cell(row=y, column=x)
cell.value = x * y
book.save("calc.xlsx")
まとめ
簡単にエクセルを弄れるようになった。(気がする
ライブラリによって使い方が変わるのかなど分からないので要調査。
次回は操作に慣れるために問題を解く予定。